passenger 5.0.0.rc1 → 5.0.0.rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +8 -8
 - checksums.yaml.gz.asc +7 -7
 - data/CHANGELOG +7 -0
 - data/ext/common/ApplicationPool2/Group.h +1 -2
 - data/ext/common/ApplicationPool2/Implementation.cpp +1 -1
 - data/ext/common/Constants.h +1 -1
 - data/ext/common/Exceptions.h +13 -4
 - data/ext/common/agents/HelperAgent/RequestHandler/CheckoutSession.cpp +6 -3
 - data/ext/common/agents/HelperAgent/RequestHandler/Hooks.cpp +1 -1
 - data/helper-scripts/download_binaries/extconf.rb +5 -3
 - data/lib/phusion_passenger.rb +1 -1
 - data.tar.gz.asc +7 -7
 - metadata +2 -2
 - metadata.gz.asc +7 -7
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,15 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            !binary "U0hBMQ==":
         
     | 
| 
       3 
3 
     | 
    
         
             
              metadata.gz: !binary |-
         
     | 
| 
       4 
     | 
    
         
            -
                 
     | 
| 
      
 4 
     | 
    
         
            +
                YzkyZGI4ZTVlOGU4MzAwYjYxNzcxMWUwM2I0NGM0MDVjOTM3ZWVmYw==
         
     | 
| 
       5 
5 
     | 
    
         
             
              data.tar.gz: !binary |-
         
     | 
| 
       6 
     | 
    
         
            -
                 
     | 
| 
      
 6 
     | 
    
         
            +
                ZmQ2ODI5ZTE3NzczZGRlMjE1YTQ5NTdlN2ZkOTQxYTEyNTUzODA1OA==
         
     | 
| 
       7 
7 
     | 
    
         
             
            SHA512:
         
     | 
| 
       8 
8 
     | 
    
         
             
              metadata.gz: !binary |-
         
     | 
| 
       9 
     | 
    
         
            -
                 
     | 
| 
       10 
     | 
    
         
            -
                 
     | 
| 
       11 
     | 
    
         
            -
                 
     | 
| 
      
 9 
     | 
    
         
            +
                MWY3MzEzY2UzNDAyOTEwYjg1ZWU1YmI2ZDM2OWNmN2JmMGExMjRjMDMyNjBk
         
     | 
| 
      
 10 
     | 
    
         
            +
                NWQxNWRhOTZiMWFhZTE3MjU0MmNiZDZjNWQ3YTJkMzcyYzNmMmFkZTgwMzlk
         
     | 
| 
      
 11 
     | 
    
         
            +
                MzE2Mzk0NTA3ZTQ1NGVkZjViNWMyZDYwNGM0YWZhMGMwNjY5MmY=
         
     | 
| 
       12 
12 
     | 
    
         
             
              data.tar.gz: !binary |-
         
     | 
| 
       13 
     | 
    
         
            -
                 
     | 
| 
       14 
     | 
    
         
            -
                 
     | 
| 
       15 
     | 
    
         
            -
                 
     | 
| 
      
 13 
     | 
    
         
            +
                YWZjN2JkMTYwZjAxZDM3NmZkMDExZjM1YTMwODUyZDc1ZjllZDE4N2JmOWYz
         
     | 
| 
      
 14 
     | 
    
         
            +
                NTdiNTcyNWNmYjQwMzYwMTdlOWQ3N2ZkM2RhNTk3ZTIzNTlmYTE4NWUyZTVj
         
     | 
| 
      
 15 
     | 
    
         
            +
                MThjNDQzMzNmZjY3MGNlOTRiNzEzOWVmZGNkZjcyYzBhYmEyMDY=
         
     | 
    
        checksums.yaml.gz.asc
    CHANGED
    
    | 
         @@ -2,11 +2,11 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
         
     | 
| 
       3 
3 
     | 
    
         
             
            Comment: GPGTools - http://gpgtools.org
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            = 
     | 
| 
      
 5 
     | 
    
         
            +
            iQEcBAABAgAGBQJU5zPQAAoJECrHRaUKISqM5EAH/14wc1xeU1EglMA+EXM2mows
         
     | 
| 
      
 6 
     | 
    
         
            +
            2i17hxn7GzsRiSOeo+F1Xm5fKqQ7NauefjH3Zrz6WAyaJyakwhkkuJYw6z+3Fp1i
         
     | 
| 
      
 7 
     | 
    
         
            +
            pqrT4puKOQJ3G/2j1hkHbmiRyXLgWUu5Z5gnf45689Nhq80vjZW8X4bBaqeh6ZuR
         
     | 
| 
      
 8 
     | 
    
         
            +
            67Ch4c8z3JeeSYz05A+S8Evg3RY9SA93lsar+BdTEopGrNhfx4p0DHlb2YwFuMkh
         
     | 
| 
      
 9 
     | 
    
         
            +
            wJCHG0K2AFleOmrWWaUH9Wg7s8rT4C6Lxy8Hg4Xmda3FF71iahy/19D4EmuuC1+s
         
     | 
| 
      
 10 
     | 
    
         
            +
            L8wupN2tNq0OwqGwoNFb44QTiistw7C15TSbd0wQQ2Yp7O+ZyK5r+lI2WWY8gaQ=
         
     | 
| 
      
 11 
     | 
    
         
            +
            =SoHV
         
     | 
| 
       12 
12 
     | 
    
         
             
            -----END PGP SIGNATURE-----
         
     | 
    
        data/CHANGELOG
    CHANGED
    
    | 
         @@ -1,3 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Release 5.0.0 release candidate 2
         
     | 
| 
      
 2 
     | 
    
         
            +
            ---------------------------------
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
             * Fixes an installation problem with the Ruby gem due to incorrect Makefile generation. Closes GH-1382.
         
     | 
| 
      
 5 
     | 
    
         
            +
             * More helpful message when request queue is full. Closes GH-1375.
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
       1 
8 
     | 
    
         
             
            Release 5.0.0 release candidate 1
         
     | 
| 
       2 
9 
     | 
    
         
             
            ---------------------------------
         
     | 
| 
       3 
10 
     | 
    
         | 
| 
         @@ -444,9 +444,8 @@ public: 
     | 
|
| 
       444 
444 
     | 
    
         
             
            				callback));
         
     | 
| 
       445 
445 
     | 
    
         
             
            			return true;
         
     | 
| 
       446 
446 
     | 
    
         
             
            		} else {
         
     | 
| 
       447 
     | 
    
         
            -
            			P_WARN("Request queue is full. Returning an error");
         
     | 
| 
       448 
447 
     | 
    
         
             
            			postLockActions.push_back(boost::bind(GetCallback::call,
         
     | 
| 
       449 
     | 
    
         
            -
            				callback, SessionPtr(), boost::make_shared<RequestQueueFullException>()));
         
     | 
| 
      
 448 
     | 
    
         
            +
            				callback, SessionPtr(), boost::make_shared<RequestQueueFullException>(newOptions.maxRequestQueueSize)));
         
     | 
| 
       450 
449 
     | 
    
         | 
| 
       451 
450 
     | 
    
         
             
            			HookScriptOptions hsOptions;
         
     | 
| 
       452 
451 
     | 
    
         
             
            			if (prepareHookScriptOptions(hsOptions, "queue_full_error")) {
         
     | 
| 
         @@ -1472,7 +1472,7 @@ Group::getResourceLocator() const { 
     | 
|
| 
       1472 
1472 
     | 
    
         | 
| 
       1473 
1473 
     | 
    
         
             
            /* Given a hook name like "queue_full_error", we return HookScriptOptions filled in with this name and a spec
         
     | 
| 
       1474 
1474 
     | 
    
         
             
             * (user settings that can be queried from agentsOptions using the external hook name that is prefixed with "hook_")
         
     | 
| 
       1475 
     | 
    
         
            -
             
     | 
| 
      
 1475 
     | 
    
         
            +
             *
         
     | 
| 
       1476 
1476 
     | 
    
         
             
             * @return false if the user parameters (agentsOptions) are not available (e.g. during ApplicationPool2_PoolTest)
         
     | 
| 
       1477 
1477 
     | 
    
         
             
             */
         
     | 
| 
       1478 
1478 
     | 
    
         
             
            bool
         
     | 
    
        data/ext/common/Constants.h
    CHANGED
    
    
    
        data/ext/common/Exceptions.h
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            /*
         
     | 
| 
       2 
2 
     | 
    
         
             
             *  Phusion Passenger - https://www.phusionpassenger.com/
         
     | 
| 
       3 
     | 
    
         
            -
             *  Copyright (c) 2010- 
     | 
| 
      
 3 
     | 
    
         
            +
             *  Copyright (c) 2010-2015 Phusion
         
     | 
| 
       4 
4 
     | 
    
         
             
             *
         
     | 
| 
       5 
5 
     | 
    
         
             
             *  "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
         
     | 
| 
       6 
6 
     | 
    
         
             
             *
         
     | 
| 
         @@ -396,13 +396,22 @@ public: 
     | 
|
| 
       396 
396 
     | 
    
         
             
             * the getWaitlist queue was full.
         
     | 
| 
       397 
397 
     | 
    
         
             
             */
         
     | 
| 
       398 
398 
     | 
    
         
             
            class RequestQueueFullException: public GetAbortedException {
         
     | 
| 
      
 399 
     | 
    
         
            +
            private:
         
     | 
| 
      
 400 
     | 
    
         
            +
            	string msg;
         
     | 
| 
      
 401 
     | 
    
         
            +
             
     | 
| 
       399 
402 
     | 
    
         
             
            public:
         
     | 
| 
       400 
     | 
    
         
            -
            	RequestQueueFullException()
         
     | 
| 
      
 403 
     | 
    
         
            +
            	RequestQueueFullException(unsigned int maxQueueSize)
         
     | 
| 
       401 
404 
     | 
    
         
             
            		: GetAbortedException(oxt::tracable_exception::no_backtrace())
         
     | 
| 
       402 
     | 
    
         
            -
            		{ 
     | 
| 
      
 405 
     | 
    
         
            +
            		{
         
     | 
| 
      
 406 
     | 
    
         
            +
            			stringstream str;
         
     | 
| 
      
 407 
     | 
    
         
            +
            			str << "Request queue full (configured max. size: " << maxQueueSize << ")";
         
     | 
| 
      
 408 
     | 
    
         
            +
            			msg = str.str();
         
     | 
| 
      
 409 
     | 
    
         
            +
            		}
         
     | 
| 
      
 410 
     | 
    
         
            +
             
     | 
| 
      
 411 
     | 
    
         
            +
            	virtual ~RequestQueueFullException() throw() {}
         
     | 
| 
       403 
412 
     | 
    
         | 
| 
       404 
413 
     | 
    
         
             
            	virtual const char *what() const throw() {
         
     | 
| 
       405 
     | 
    
         
            -
            		return  
     | 
| 
      
 414 
     | 
    
         
            +
            		return msg.c_str();
         
     | 
| 
       406 
415 
     | 
    
         
             
            	}
         
     | 
| 
       407 
416 
     | 
    
         
             
            };
         
     | 
| 
       408 
417 
     | 
    
         | 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            /*
         
     | 
| 
       2 
2 
     | 
    
         
             
             *  Phusion Passenger - https://www.phusionpassenger.com/
         
     | 
| 
       3 
     | 
    
         
            -
             *  Copyright (c) 2011- 
     | 
| 
      
 3 
     | 
    
         
            +
             *  Copyright (c) 2011-2015 Phusion
         
     | 
| 
       4 
4 
     | 
    
         
             
             *
         
     | 
| 
       5 
5 
     | 
    
         
             
             *  "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
         
     | 
| 
       6 
6 
     | 
    
         
             
             *
         
     | 
| 
         @@ -208,7 +208,7 @@ reportSessionCheckoutError(Client *client, Request *req, const ExceptionPtr &e) 
     | 
|
| 
       208 
208 
     | 
    
         
             
            		boost::shared_ptr<RequestQueueFullException> e2 =
         
     | 
| 
       209 
209 
     | 
    
         
             
            			dynamic_pointer_cast<RequestQueueFullException>(e);
         
     | 
| 
       210 
210 
     | 
    
         
             
            		if (e2 != NULL) {
         
     | 
| 
       211 
     | 
    
         
            -
            			writeRequestQueueFullExceptionErrorResponse(client, req);
         
     | 
| 
      
 211 
     | 
    
         
            +
            			writeRequestQueueFullExceptionErrorResponse(client, req, e2);
         
     | 
| 
       212 
212 
     | 
    
         
             
            			return;
         
     | 
| 
       213 
213 
     | 
    
         
             
            		}
         
     | 
| 
       214 
214 
     | 
    
         
             
            	}
         
     | 
| 
         @@ -223,7 +223,7 @@ reportSessionCheckoutError(Client *client, Request *req, const ExceptionPtr &e) 
     | 
|
| 
       223 
223 
     | 
    
         
             
            }
         
     | 
| 
       224 
224 
     | 
    
         | 
| 
       225 
225 
     | 
    
         
             
            void
         
     | 
| 
       226 
     | 
    
         
            -
            writeRequestQueueFullExceptionErrorResponse(Client *client, Request *req) {
         
     | 
| 
      
 226 
     | 
    
         
            +
            writeRequestQueueFullExceptionErrorResponse(Client *client, Request *req, const boost::shared_ptr<RequestQueueFullException> &e) {
         
     | 
| 
       227 
227 
     | 
    
         
             
            	TRACE_POINT();
         
     | 
| 
       228 
228 
     | 
    
         
             
            	const LString *value = req->secureHeaders.lookup("!~PASSENGER_REQUEST_QUEUE_OVERFLOW_STATUS_CODE");
         
     | 
| 
       229 
229 
     | 
    
         
             
            	int requestQueueOverflowStatusCode = 503;
         
     | 
| 
         @@ -232,6 +232,9 @@ writeRequestQueueFullExceptionErrorResponse(Client *client, Request *req) { 
     | 
|
| 
       232 
232 
     | 
    
         
             
            		requestQueueOverflowStatusCode = stringToInt(
         
     | 
| 
       233 
233 
     | 
    
         
             
            			StaticString(value->start->data, value->size));
         
     | 
| 
       234 
234 
     | 
    
         
             
            	}
         
     | 
| 
      
 235 
     | 
    
         
            +
             
     | 
| 
      
 236 
     | 
    
         
            +
            	SKC_WARN(client, "Returning HTTP " << requestQueueOverflowStatusCode << " due to: " << e->what());
         
     | 
| 
      
 237 
     | 
    
         
            +
             
     | 
| 
       235 
238 
     | 
    
         
             
            	endRequestWithSimpleResponse(&client, &req,
         
     | 
| 
       236 
239 
     | 
    
         
             
            		"<h1>This website is under heavy load</h1>"
         
     | 
| 
       237 
240 
     | 
    
         
             
            		"<p>We're sorry, too many people are accessing this website at the same "
         
     | 
| 
         @@ -31,7 +31,7 @@ virtual unsigned int getClientName(const Client *client, char *buf, size_t size) 
     | 
|
| 
       31 
31 
     | 
    
         
             
            	char *pos = buf;
         
     | 
| 
       32 
32 
     | 
    
         
             
            	const char *end = buf + size - 1;
         
     | 
| 
       33 
33 
     | 
    
         
             
            	pos += uintToString(threadNumber, pos, end - pos);
         
     | 
| 
       34 
     | 
    
         
            -
            	pos = appendData(pos, end, " 
     | 
| 
      
 34 
     | 
    
         
            +
            	pos = appendData(pos, end, "-", 1);
         
     | 
| 
       35 
35 
     | 
    
         
             
            	pos += uintToString(client->number, pos, end - pos);
         
     | 
| 
       36 
36 
     | 
    
         
             
            	*pos = '\0';
         
     | 
| 
       37 
37 
     | 
    
         
             
            	return pos - buf;
         
     | 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #!/usr/bin/env ruby
         
     | 
| 
       2 
2 
     | 
    
         
             
            #  Phusion Passenger - https://www.phusionpassenger.com/
         
     | 
| 
       3 
     | 
    
         
            -
            #  Copyright (c) 2010- 
     | 
| 
      
 3 
     | 
    
         
            +
            #  Copyright (c) 2010-2015 Phusion
         
     | 
| 
       4 
4 
     | 
    
         
             
            #
         
     | 
| 
       5 
5 
     | 
    
         
             
            #  "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
         
     | 
| 
       6 
6 
     | 
    
         
             
            #
         
     | 
| 
         @@ -28,9 +28,11 @@ 
     | 
|
| 
       28 
28 
     | 
    
         
             
            # Create a dummy Makefile to prevent 'gem install' from borking out.
         
     | 
| 
       29 
29 
     | 
    
         
             
            File.open("Makefile", "w") do |f|
         
     | 
| 
       30 
30 
     | 
    
         
             
              f.puts "all:"
         
     | 
| 
       31 
     | 
    
         
            -
              f.puts " 
     | 
| 
      
 31 
     | 
    
         
            +
              f.puts "\ttrue"
         
     | 
| 
       32 
32 
     | 
    
         
             
              f.puts "install:"
         
     | 
| 
       33 
     | 
    
         
            -
              f.puts " 
     | 
| 
      
 33 
     | 
    
         
            +
              f.puts "\ttrue"
         
     | 
| 
      
 34 
     | 
    
         
            +
              f.puts "clean:"
         
     | 
| 
      
 35 
     | 
    
         
            +
              f.puts "\ttrue"
         
     | 
| 
       34 
36 
     | 
    
         
             
            end
         
     | 
| 
       35 
37 
     | 
    
         | 
| 
       36 
38 
     | 
    
         
             
            # Don't do anything on Windows. We don't support Windows but exiting now
         
     | 
    
        data/lib/phusion_passenger.rb
    CHANGED
    
    | 
         @@ -30,7 +30,7 @@ module PhusionPassenger 
     | 
|
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
              PACKAGE_NAME = 'passenger'
         
     | 
| 
       32 
32 
     | 
    
         
             
              # Run 'rake ext/common/Constants.h' after changing this number.
         
     | 
| 
       33 
     | 
    
         
            -
              VERSION_STRING = '5.0.0. 
     | 
| 
      
 33 
     | 
    
         
            +
              VERSION_STRING = '5.0.0.rc2'
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
35 
     | 
    
         
             
              PREFERRED_NGINX_VERSION = '1.6.2'
         
     | 
| 
       36 
36 
     | 
    
         
             
              NGINX_SHA256_CHECKSUM = 'b5608c2959d3e7ad09b20fc8f9e5bd4bc87b3bc8ba5936a513c04ed8f1391a18'
         
     | 
    
        data.tar.gz.asc
    CHANGED
    
    | 
         @@ -2,11 +2,11 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
         
     | 
| 
       3 
3 
     | 
    
         
             
            Comment: GPGTools - http://gpgtools.org
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            = 
     | 
| 
      
 5 
     | 
    
         
            +
            iQEcBAABAgAGBQJU5zPQAAoJECrHRaUKISqMfIMH/ibyDpj/kSqVKpaMJx9B1UBV
         
     | 
| 
      
 6 
     | 
    
         
            +
            tlfqXzlVT9rDLbsB6B8yFy2kXKKirRUkvFQmXw3l0xivi1xlyBcgW7PA9fkXeSvK
         
     | 
| 
      
 7 
     | 
    
         
            +
            oUfMkBKaZYKwpcBwC0Pnd3aKAZiD9sEfSrhR73xZSTKZQTJYomPSLmWLJikq/zX/
         
     | 
| 
      
 8 
     | 
    
         
            +
            iidzjpdQ2OkVxY8LdQj9FH+I2Ebazf1rKiSaY0OSNE5M4kYlm425QfBnfHvjp7Vr
         
     | 
| 
      
 9 
     | 
    
         
            +
            sv1zlxZtkAiMNsp0khBLb2203xYyy9X8DyhqChO8GuAbA9jfEmiveUNokx+oFCdO
         
     | 
| 
      
 10 
     | 
    
         
            +
            LOojfJN3f9LhcL2igWy99KmseREjty4q5qli0TFCxCCI4oKka8eUJn9lwX0PHWE=
         
     | 
| 
      
 11 
     | 
    
         
            +
            =O6BO
         
     | 
| 
       12 
12 
     | 
    
         
             
            -----END PGP SIGNATURE-----
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: passenger
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 5.0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 5.0.0.rc2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Phusion - http://www.phusion.nl/
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2015-02- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-02-20 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rake
         
     | 
    
        metadata.gz.asc
    CHANGED
    
    | 
         @@ -2,11 +2,11 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
         
     | 
| 
       3 
3 
     | 
    
         
             
            Comment: GPGTools - http://gpgtools.org
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
            / 
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            = 
     | 
| 
      
 5 
     | 
    
         
            +
            iQEcBAABAgAGBQJU5zPQAAoJECrHRaUKISqMdhUH/2gCqNzD6k9SF95PpPkvpHYd
         
     | 
| 
      
 6 
     | 
    
         
            +
            eat4jQTLH7kLa/RznZrRSTUE4O6Yr9uvCIAsG5oFFEUEDEuz4cn4V5asWXpjON9b
         
     | 
| 
      
 7 
     | 
    
         
            +
            QE3w8+TU2MsVS6C34EDU/Krinf/+3faQxD/JxVaPlSDiLo3PkHIt6IZBQQLGFSYI
         
     | 
| 
      
 8 
     | 
    
         
            +
            FqCx/ipKfnhQJUtWLQwwdQS35qSFYZ/OcY0fgLiM2/YOXW+m/mNTDoxhOPqTV3iD
         
     | 
| 
      
 9 
     | 
    
         
            +
            aTJj+JMBYuvFfkrNfPRYxt4ZilTKFzwGeAFQOCL8tE/2iMbJ3i4WCW+QeX94qqQN
         
     | 
| 
      
 10 
     | 
    
         
            +
            G2iuj+IT1HKnfkdlq1mnhO1JcYjREkxJXlHg17GKhC5cyAPmQ5UQDKBXVlcap+w=
         
     | 
| 
      
 11 
     | 
    
         
            +
            =xp1q
         
     | 
| 
       12 
12 
     | 
    
         
             
            -----END PGP SIGNATURE-----
         
     |