Welcome to the Great Internet Mersenne Prime Search! To use this program you must agree to the terms and conditions, prize rules, etc. at https://mersenne.org/legal/ The GIMPS web site is at https://mersenne.org Help is available at https://mersenneforum.org My email address is woltman@alum.mit.edu FILE LIST --------- readme.txt This file. prime95.exe The windows program to trial factor and primality test Mersenne numbers. mprime The Linux program to trial factor and primality test Mersenne numbers. libgmp* A library containing the GNU multi-precision math package. libhwloc* A library containing routines to analyze your hardware (cores, cache sizes, etc.) libcurl* A library containing routines to send and receive internet messages. libcrypto*, libssl* Libraries required by libcurl. On some OSes you may need to copy libraries to the system library directory. whatsnew.txt A list of new features in prime95.exe. stress.txt A discussion of issues relating to stress testing a computer. undoc.txt A list of undocumented and unsupported features. prime.txt A file containing your preferences. The menu choices and dialog boxes are used to change your preferences. local.txt Like prime.txt, this file contains more preferences. The reason there are two files is discussed later. worktodo.txt A list of exponents the program will be factoring and/or Lucas-Lehmer testing. results.txt Prime95.exe writes its results to this file. results.json.txt Prime95.exe writes results to this file in an easy-to-parse JSON format. results.bench.txt Prime95.exe writes benchmark results to this file. gwnum.txt A file containing benchmark data. Used to tune FFTs for your particular machine. prime.log A text file listing all messages that have been sent to the PrimeNet server. prime.spl A binary file of messages that have not yet been sent to the PrimeNet server. mprime.pid Linux only. The PID of the currently running mprime. cNNNNNNN,cNNNNNNN.buN Intermediate files produced during certification runs. pNNNNNNN,pNNNNNNN.buN Intermediate files produced by prime95.exe to resume computation where it left off. pNNNNNNN.residues Large intermediate file produced during PRP test for constructing a PRP proof. pNNNNNNN.proof PRP proof file. eNNNNNNN,eNNNNNNN.buN Intermediate files produced during ECM factoring. fNNNNNNN,fNNNNNNN.buN Intermediate files produced during trial factoring. mNNNNNNN,mNNNNNNN.buN Intermediate files produced during P-1 factoring. nNNNNNNN,nNNNNNNN.buN Intermediate files produced during P+1 factoring. WHAT IS THIS PROGRAM? --------------------- This program is used to find Mersenne Prime numbers. See https://primes.utm.edu/mersenne/index.html for a good description of Mersenne primes. Mersenne numbers can be proved composite (not prime) by either finding a factor or by running a PRP (PRobable Prime) or Lucas-Lehmer primality test. The preferred primality test is PRP because it allows vastly superior error checking as well as the ability to generate a separate proof file that proves the test was run and the results were correct. WHERE TO GET HELP ----------------- The best help is available by asking a question at mersenneforum.org. It can be a little overwhelming at first. Especially with acronyms commonly used as a shorthand (there even used in this file). So here is a quick list of some of the more common acronyms. PRP - PRobable Prime test (this is how we find new Mersenne primes) LL - Lucas-Lehmer test (this is how we used to find new primes) DC - Double-Checking (LL tests must be double-checked with a second LL test) TF - Trial Factoring (can eliminate some candidates cheaply) P-1 - P-1 factoring (also eliminates candidates cheaply) P+1 - P+1 factoring (used in an effort to fully factor tiny Mersennes) ECM - Elliptic Curve Method factoring (used in an effort to fully factor tiny Mersennes) CERT - CERTification (certifies PRP proofs, better and cheaper than a DC) GEC - Gerbicz Error Checking (powerful error cheking and recovery for PRP tests) GPU72 - subproject to TF candidates on GPUs (GPUs TF much better than CPUs) INSTRUCTIONS ------------ Create a directory to hold the executable and associated files. Make sure you have write access to this new directory. In Windows, this may mean choosing a different directory than the standard Windows unzip utility suggests! Unzip your download into this new directory. Now run the program. In Windows, double-click on prime95. In Linux, FreeBSD, Mac OS X command line version, cd to the directory and type "./mprime -m". You may need to install the included libraries. There are two ways to use this program. The automatic way uses a central server, which we call the PrimeNet server, to get work to do and report your results. You do not need a permanent connection to the Internet. The second method is the manual method. It requires a little more work and monitoring. This is recommended for computers with no Internet access or with some kind of firewall problem that prevents the automatic method from working. If you are running this program at your place of employment, you must first GET PERMISSION from your network administrator, boss, or both. This is especially true if you are installing the software on several machines. Many companies have policies that prohibit running unauthorized software. Violating that policy could result in TERMINATION and/or PROSECUTION. INSTRUCTIONS FOR THE AUTOMATIC METHOD ------------------------------------- 1) Connect to the Internet. Create an account at https://mersenne.org 2) Run prime95.exe on Windows or "mprime -m" on Linux. You will see 5 dialog boxes: 2a) In the welcome dialog box, choose "Join GIMPS!". 2b) In the second dialog box, enter your user id and optional computer name. If you are using several computers, use the same user ID but a unique computer name on each machine. An easy-to-remember user ID will be helpful if you plan to visit the PrimeNet server's web page to view reports on your progress. 2c) In the third dialog box, fill in roughly how many hours a day you leave your computer running. Click OK (just close the dialog box on a Mac). 2d) In the fourth dialog box, place constraints on the resources the program is allowed to use. 2e) In the fifth dialog box, choose the number of workers you want to run. Choose the type of work you want each worker to perform. 3a) If a proxy server is the causing connection troubles, see the later section on "SETTING UP A PROXY SERVER". 3b) If the program will not connect to the server, then you will have to use the manual method described below. 4) Disable screen savers or use the "blank screen" screen saver. If this is not practical, consider raising prime95's priority to 4 or 5. MANUAL METHOD INSTRUCTIONS -------------------------- 1) Visit https://mersenne.org/update/ to create a userid for yourself and https://mersenne.org/manual_assignment/ to get an exponent or two to work on. Copy these exponents to a file called worktodo.txt. 2) Run prime95.exe on Windows or "mprime -m" on Linux. You will see 3 dialog boxes: 2a) In the welcome dialog box, choose "Join GIMPS!". 2b) In the second dialog box, uncheck "Use PrimeNet to get work and report results", click OK. 2c) In the third dialog box, place constraints on the resources the program is allowed to use. 3) Disable screen savers or use the "blank screen" screen saver. If this is not practical, consider raising the program's priority to 4 or 5. 4) When done with your exponents, use the web pages again to send the file "results.json.txt" to the PrimeNet server and get more work. WARNINGS and NOTES ------------------ Running this program may SIGNIFICANTLY INCREASE YOUR ELECTRIC BILL. The amount depends on your computer and your local electric rates. It can take many CPU weeks to test a large Mersenne number. This program can be safely interrupted by using the ESC key to write intermediate results to disk. This program also saves intermediate results to disk every 30 minutes in case there is a power failure. You can compare your computer's speed with other users by checking the web page https://mersenne.org/report_benchmarks/. If you are much slower than comparable machines, utilities such as Task Manager are available that can find programs that are using CPU cycles. You can get several reports of your PrimeNet activity at any time by logging in at https://mersenne.org/. If you have overclocked your machine, I recommend running the torture test for a few hours. The longer you run the torture test the greater the chance that you will uncover possible problems caused by overheating or overstressed memory. Depending on the exponent being tested, the program may decide that it would be wise to invest some time checking for small factors using trial factoring or P-1 factoring before running a primality test. CONTROLLING RESOURCE USAGE -------------------------- The Options/Resource Limits dialog box contains important settings to control the program's resource usage. The PRP primality test generates a proof file that eliminates the need to double-check your results. Generating these proofs requires lots of temporary disk space. Proof files must be uploaded to the server which could be an issue for some users with limited bandwidth. PRP proofs are a little more efficient when using a larger proof power. However, this requires more disk space and internet bandwidth. The table below shows resource usage for several proof powers and exponents. Proof Temp disk space / Proof file size Power Exponent=100,000,000 Exponent=200,000,000 Exponent=332,000,000 7 1.6GB / 200MB* 3.2GB / 400MB* 5.3GB / 664MB* 8 3.2GB / 113MB 6.4GB / 225MB 10.6GB / 373MB 9 6.4GB / 125MB 12.8GB / 250MB 21.2GB / 415MB 10 12.8GB / 138MB 25.6GB / 275MB 42.4GB / 457MB After the proof is uploaded to the server it is pre-processed creating a smaller file that must be downloaded by users doing proof certification work. Proof certification work is very fast (256, 512, or 1024 times faster than the original PRP test depending on proof power). By default, your computer is signed up for occasional proof certification work. *For proof power 7, it is possible to cut the proof file size in half but this doubles the work required by the user doing the certification. See undoc.txt. Temporary disk usage -------------------- This setting limits the amount of temporary disk space used BY EACH WORKER doing PRP work. See the table above for how that affects proof power. A proof power of 8 or more is desirable, but a proof power of 7 is acceptable. The default limit of 6GB will use a proof power of 8 for exponents you are likely to be assigned for first time tests over the next several years. Upload bandwidth limit ---------------------- For most home users, download speed is faster than upload speed. If upload speed is not limited, it can seriously impact download speeds. I recommend not using more than 10% of your upload bandwidth. The default setting is 0.25Mbps. This uploads a 100MB proof file in about an hour. If the upload is interrupted, it will automatically resume from where it left off at a later time. Upload time period ------------------ You can further reduce impact on network performance by scheduling uploads for off hours when network traffic is light. Download limit for certification work ------------------------------------- This controls the number of MB that can be downloaded to your machine each day for certification work. It is highly unlikely there will be enough certification work available to satisfy the default setting of 40MB / day. If you are on a metered connection or do not wish to devote any CPU time to certification work then you can set this to zero and you will not be assigned certification work. You can also use this setting to control how often you get certification assignments. For example, with exponents around 100,000,000 requiring a 12MB download, setting the download limit to 4MB would mean getting at most one 100,000,000 certification every 3 days. ADVANCED RESOURCE USAGE ----------------------- These resource settings shouldn't be changed for most users. Directory for large temporary files ----------------------------------- The large temporary files needed for PRP proofs are stored in the same directory as the program. If another disk drive or a network disk has considerably more free space, you can use this setting to name a different directory to store the large temporary proof files. Directory to hold archived proofs --------------------------------- The server deletes the uploaded proof files once the result has been certified. If you would like to archive your proof files for posterity, name the directory to store the proofs. After uploading to the server, the proof files will be moved to this directory. Daytime and nighttime P-1/P+1/ECM stage 2 memory ------------------------------------------------ On occasion, you may be assigned an exponent that needs P-1 factoring prior to running a primality test. Or you might choose to do P-1, P+1, or ECM work (possibly because you do not want to devote disk space for large PRP files). In these situations, the program can run stage 2 more effectively if it is given more memory to work with. However, if you let the program use too much memory then the performance of ALL programs will suffer due to thrashing. That is, most of the time this setting is not used and even with minimal settings the program will work just fine. Should you decide to change these settings, how do you choose intelligently? Below are some steps you might take to figure this out: 1) Be aggressive for P-1, conservative for P+1 and ECM. The P-1 stage 2 algorithm LOVES memory. Double the memory, double the throughput. For P+1 and ECM it is better to set the memory too low than too high. For all work types setting the value too high can cause thrashing which slows down all programs. 2) Start with how much memory is installed in your machine. Allow a reasonable amount of memory for the OS and whatever background tasks you run (say 2GB to 6GB). This represents the maximum value you should use. The program won't let you enter more than 90% of installed memory. 3) Assuming you run your machine 24 hours a day, what hours of the day do you not use your computer? Make these your nighttime hours and let the program use a lot of memory during these hours. But reduce this value if you also run batch jobs at night. 4) Factor in the information below about minimum, reasonable, and desirable memory amounts for some sample exponents. If you choose a value below the minimum, that is OK. The program will simply skip stage 2 of P-1 factoring. Exponent Minimum Workable Desirable -------- ------- -------- --------- 100000000 0.2GB 0.7GB 85-90% of RAM 333000000 0.7GB 2.1GB 85-90% of RAM For example, my machine is a quad-processor with 16GB of memory. I guess Windows and the programs I normally use can survive on 4GB of memory. Thus, I set memory to 12.0GB. This is my nighttime setting. During the day, I run more programs, so I set memory to 4.0GB. I can always stop prime95 if it is doing stage 2 work and I suspect memory is thrashing. More casual users might want to set the daytime memory to 0.1GB so they never have to worry about prime95 impacting system performance. Max emergency memory -------------------- If the program cannot write to the large temporary file, it will use emergency memory to hold data in hopes that it can later be successfully written to the temporary file. For me, this gives me about a day to correct a network drive that has gone offline. If you use a local disk to store your large temporary proof files then emergency memory might be used if the local disk is full. CPU Priority ------------ It is strongly recommended that you use the default priority of 1. This program is unlikely to run any faster at a higher priority. Priority 1 is the lowest priority and 10 is the highest. Screen savers run at priority 4. Most applications run at priority 7 or 9. The only time you should raise the priority is when another background process, such as a screen saver, is not leaving many spare CPU cycles for this program. Certification work limit ------------------------ This setting limits the maximum amount of CPU time that will be spent doing certification work. It is highly unlikely there will be enough certification work available to satisfy the default setting of 10%. If every user does their share of certification work then there will only be enough work for less than 0.5% of your CPU time. NOTE: Technically, the default limit is not 10% of your CPU, but rather 10% of the work a typical 2015 quad-core CPU can perform in a day. Use hyperthreading ------------------ Except for trial factoring, which is best left for GPUs to do, hyperthreading often offers no performance benefit while using more electricity. You can try test if hyperthreading speeds up your worker windows by selecting these options. SETTING UP A PROXY SERVER ------------------------- Choose the "Connection..." button in the Test/Primenet dialog box. Fill in the proxy information. PROGRAM OUTPUT -------------- On screen you will see: Factoring M400037 to 2^54 is 3.02% complete. Time: 0.121 sec. This means prime95/mprime is trying to find a small factor of 2^400037-1. It is 3.02% of the way though looking at factors below 2^54. When this completes it may start looking for factors less than 2^55. Iteration: 9414000 / 96774711 [9.73%]. Per iteration time: 0.109 sec. This means prime95/mprime just finished the 9414000th iteration of a primality test. The program must execute 96774711 iterations to complete the primality test. The average iteration took 0.109 seconds. The results file and screen will include lines that look like: M2645701 has a factor: 13412891051374103 This means to 2^2645701-1 is not prime. It is divisible by 13412891051374103. M2123027 no factor to 2^57, WV1: 14780E25 This means 2^2123027-1 has no factors less than 2^57. The Mersenne number may or may not be prime. A primality test is needed to determine the primality of the Mersenne number. WV1 is the program version number. 14780E25 is a checksum to guard against transmission errors. M1992031 is not prime. Res64: 6549369F4962ADE0. WV1: B253EF24,1414032,00000000 This means 2^1992031-1 is not prime - a primality test says so. The last 64 bits of the last number in the primality test sequence is 6549369F4962ADE0. At some future date, another person will verify this 64-bit result by rerunning the primality test. WV1 is the program version number. B253EF24 is a checksum to guard against transmission errors. 1414032 can be ignored it is used as part of the double-checking process. The final 00000000 value is a set of 4 counters. These count the number of errors that occurred during the Lucas-Lehmer test. M11213 is prime! WV1: 579A579A This means 2^11213-1 is a Mersenne prime! WV1 is the program version number. 579A579A is a checksum to guard against transmission errors. INSTALLING ON SEVERAL COMPUTERS ------------------------------- The obvious way is to download and install on each computer following the instructions above. Use Test/Primenet to give each computer the same user id and different computer name. Another way to do this is to first set up one computer. Next copy all the files to the second computer. Delete the local.txt file and worktodo.txt files. These files contain information that is specific to the first computer. Start prime95/mprime on the second computer and use Test/Primenet to give the second computer a unique computer name. Check the resource limits dialog box for any further needed changes. Repeat this process for all the computers you wish to run prime95/mprime. TEST MENU --------- The PrimeNet menu choice identifies your computer to the server. The "Use PrimeNet..." option can be turned on to switch from the manual method to the automatic method. The Worker Windows menu choice is used to choose the type of work you'd prefer to execute. The work preference should usually be left set to "Whatever makes the most sense". However, if you are running a slow computer and don't mind waiting several months for a single primality test to complete OR you are running a faster computer and prefer faster work types, then choose a different work preference. The Status menu choice will tell you what exponents you are working on. It will also estimate how long that will take and your chances of finding a new Mersenne prime. The Continue menu choice lets you resume prime95/mprime after you have stopped it. The Stop menu choice lets you stop the program. When you continue, you will pick up right where you left off. This is the same as hitting the ESC key. The Exit menu choice lets you exit the program. ADVANCED MENU ------------- You should not need to use the Advanced menu. This menu choice is provided only for those who are curious. Note that many of the menu choices are grayed while testing is in progress. Choose Test/Stop to activate these menu choices. The Test choice can be used to run a Lucas-Lehmer test on one Mersenne number. Enter the Mersenne number's exponent - this must be a prime number between 5 and 560000000. The Time choice can be used to see how long each iteration of a Lucas-Lehmer test will take on your computer and how long it will take to test a given exponent. For example, if you want to know how long a Lucas-Lehmer test will take to test the exponent 876543, choose Advanced/Time and enter 876543 for 100 iterations. The ECM choice lets you factor numbers of the form k*b^n+c using the Elliptic Curve Method of factoring. ECM requires a memory minimum of 192 times the FFT size. Thus, ECM factoring of F20 which uses a 64K FFT will use a minimum of 192 * 64K or 12MB of memory. You can also edit the worktodo.txt file directly. For example: ECM2=k,b,n,c,B1,B2,curves_to_run[,"comma-separated-list-of-known-factors"] The P-1 choice lets you factor numbers of the form k*b^n+c using the P-1 method of factoring. You can also edit the worktodo.txt file directly. For example: Pminus1=k,b,n,c,B1,B2[,"comma-separated-list-of-known-factors"] The PRP choice, available from the menus only in the Mac OS X version, lets you do a probable prime test on numbers of the form k*b^n+c. On all OSes, you can edit the worktodo.txt file directly. For example add: PRP=k,b,n,c[,how_far_factored,tests_saved][,prp_base,residue_type][,"comma-separated-list-of-known-factors"] where the how_far_factored and tests_saved values are used to pick optimal bounds for P-1 factoring prior to running the PRP test. Round off checking. This option will slow the program down a little. This option displays the smallest and largest "convolution error". The convolution error must be less than 0.49 or the results will be incorrect. There really is no good reason to turn this option on. The Manual Communication menu choice should only be used if the automatic detection of an Internet connection is not working for you. Using this option means you have to remember to communicate with the server every week or two (by using this same menu choice). The Unreserve Exponent choice lets you tell the server to unreserve an exponent you have been assigned. You might do this if a second computer you had been running GIMPS on died or if you had been assigned an exponent of one work type (such as a first-time-test) and now you have switched to another work type (such as double-checking). Any work you have done on the unreserved exponent will be lost. The Quit GIMPS menu choice is used when you no longer want this computer to work on the GIMPS project. You may rejoin at a later date. If you are a PrimeNet user your unfinished work will be returned to the server. If you are a manual user, submit your final results to the web page https://mersenne.org/manual_result OPTIONS MENU ------------ The CPU menu choice tells you what CPU the program has detected and lets you set how many hours a day you expect to run the program. This setting is used to give better estimated completion dates in Test / Status. It may also affect what work you are assigned in for "What makes the most sense" work preference. The Resource limits menu choice lets you set several important resource limitations for the program. These were discussed extensively above. The Preferences menu choice lets you control how often lines are written to the main window and how often lines are written to the results file. It also lets you change how often intermediate files (to guard against power failure and crashes) are created. You can control how often the program checks to see if you are connected to the Internet. The program polls whenever it has new data to send to or work to get from the PrimeNet server. If you are low on disk space, you can select one intermediate file instead of more. However, if you crash in the middle of writing the one intermediate file, you may have to restart an exponent from scratch. You can also tell the program to be quiet, rather than beeping like crazy, if a new Mersenne prime is found. You can also make prime95/mprime go idle whenever your laptop is running on battery power. The Torture Test choice will run a continuous self test. This is great for testing machines for hardware problems. See the file stress.txt for a more in-depth discussion of stress testing and hardware problems. The Benchmark choice determines your computer's throughput on several FFT lengths. Use this to decide the best number of worker windows to run. The Tray Icon choice will cause prime95 to have a small icon on the taskbar when it is minimized. You can activate or hide the program by double-clicking on the small icon. If you place the cursor over the small icon, a tooltip will display the current status. The No Icon choice means there will be no prime95 icon on the taskbar once you minimize the program - making it very hard to reactivate! You can reactivate the program by trying to execute prime95 a second time. Alternatively, you can turn this feature off by editing prime.txt and change the line "HideIcon=1" to "HideIcon=0", then reboot. PRIME95 COMMAND LINE ARGUMENTS ------------------------------ -t Run the torture test. Same as Options/Torture Test. -Wdirectory This tells prime95 to find all its files in a different directory than the executable. MPRIME COMMAND LINE ARGUMENTS ---------------------------- -c Contact the PrimeNet server then exit. Useful for scheduling server communication as a cron job or as part of a script that dials an ISP. -d Prints more detailed information to stdout. Normally mprime does not send any output to stdout. -m Bring up the menus to set mprime's preferences. -t Run the torture test. Same as Options/Torture Test. -v Print the version number of mprime. -Wdirectory This tells mprime to find all its files in a different directory than the executable. POSSIBLE HARDWARE FAILURE ------------------------- If the message "Possible hardware failure, consult the readme file." appears in the results.txt file, then prime95/mprime's error-checking has detected a problem. After waiting 5 minutes, the program will continue testing from the last save file. The most common error message is ROUND OFF > 0.40 caused by one of two things: 1) For reasons too complicated to go into here, the program's error checking is not perfect. Some errors can be missed and some correct results flagged as an error. If you get the message "Disregard last error..." upon continuing from the last save file, then you may have found the rare case where a good result was flagged as an error. 2) A true hardware error. If you do not get the "Disregard last error..." message or this happens more than once, then your machine is a good candidate for a torture test. See the stress.txt file for more information. Could it be a software problem (bug)? Unlikely. Try running a torture test and/or asking for advice at mersenneforum.org. Running the program on a computer with hardware problems will still produce correct PRP results. PRP primality tests have exceptionally strong error recovery mechanisms. Plus, the final result can be proven correct with a quick certification of the PRP proof file. FERMAT PRP AND LUCAS-LEHMER DETAILS ----------------------------------- This program uses a Fermat probable prime test (PRP) to see if 2^p-1 is prime. The Fermat PRP test is defined as: 2^p-1 is probably prime if 3^((2^p-1)-1) = 1 mod (2^p - 1) This is equivalent to 3^(2^p-1) = 3 mod (2^p - 1) This is equivalent to 3^(2^p) = 9 mod (2^p - 1) This is simply p squarings modulo 2^p-1. This program can also perform a Lucas-Lehmer primality test to see if 2^p-1 is prime. The Lucas sequence is defined as: L[1] = 4 L[n+1] = (L[n]^2 - 2) mod (2^p - 1) 2^p-1 is prime if and only if L[p-1] = 0. This requires p-2 squarings modulo 2^p-1 and p-2 subtractions of 2. Fermat PRP testing is greatly preferred over Lucas-Lehmer testing because of the robust error recovery and quick proof file verification. This program uses a discrete weighted transform (see Mathematics of Computation, January 1994) to square numbers mod 2^p - 1. COPYRIGHTS (hwloc library) -------------------------- Copyright © 2004-2006 The Trustees of Indiana University and Indiana University Research and Technology Corporation. All rights reserved. Copyright © 2004-2005 The University of Tennessee and The University of Tennessee Research Foundation. All rights reserved. Copyright © 2004-2005 High Performance Computing Center Stuttgart, University of Stuttgart. All rights reserved. Copyright © 2004-2005 The Regents of the University of California. All rights reserved. Copyright © 2009 CNRS Copyright © 2009-2016 Inria. All rights reserved. Copyright © 2009-2015 Université Bordeaux Copyright © 2009-2015 Cisco Systems, Inc. All rights reserved. Copyright © 2009-2012 Oracle and/or its affiliates. All rights reserved. Copyright © 2010 IBM Copyright © 2010 Jirka Hladky Copyright © 2012 Aleksej Saushev, The NetBSD Foundation Copyright © 2012 Blue Brain Project, EPFL. All rights reserved. Copyright © 2013-2014 University of Wisconsin-La Crosse. All rights reserved. Copyright © 2015 Research Organization for Information Science and Technology (RIST). All rights reserved. Copyright © 2015-2016 Intel, Inc. All rights reserved. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. COPYRIGHTS (QD - QUAD-DOUBLE/DOUBLE-DOUBLE COMPUTATION PACKAGE) --------------------------------------------------------------- Copyright (c) 2003, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from U.S. Dept. of Energy) All rights reserved. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. COPYRIGHTS (libcurl) -------------------- Copyright (c) 1996 - 2016, Daniel Stenberg, daniel@haxx.se, and many contributors, see the THANKS file. All rights reserved. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. COPYRIGHTS (libgmp) ------------------- Copyright 1991, 1996, 1999, 2000, 2007 Free Software Foundation, Inc. This file is part of the GNU MP Library. The GNU MP Library is free software; you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. The GNU MP Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with the GNU MP Library. If not, see https://www.gnu.org/licenses/. COPYRIGHTS (cJSON) ------------------- Copyright (c) 2009-2017 Dave Gamble and cJSON contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. OUR DISCLAIMER -------------- THIS PROGRAM AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. THANKS ------ Happy hunting and thanks for joining the search, George Woltman woltman@alum.mit.edu