lib-python.2.7.test.testtar.tar Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jython-standalone Show documentation
Show all versions of jython-standalone Show documentation
Jython is an implementation of the high-level, dynamic, object-oriented
language Python written in 100% Pure Java, and seamlessly integrated with
the Java platform. It thus allows you to run Python on any Java platform.
ustar/conttype 0000644 0001750 0000144 00000015543 07606136617 015171 7 ustar 00tarfile tarfile 0000000 0000000 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
ustar/regtype 0000644 0001750 0000144 00000015543 07606136617 014774 0 ustar 00tarfile tarfile 0000000 0000000 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
ustar/dirtype/ 0000755 0001750 0000144 00000000000 07606136617 015042 5 ustar 00tarfile tarfile 0000000 0000000 ustar/dirtype-with-size/ 0000755 0001750 0000144 00000000377 07606136617 017004 5 ustar 00tarfile tarfile 0000000 0000000 ustar/lnktype 0000644 0001750 0000144 00000000000 07606136617 017520 1ustar/regtype ustar 00tarfile tarfile 0000000 0000000 ustar/symtype 0000777 0001750 0000144 00000000000 07606136617 016416 2regtype ustar 00tarfile tarfile 0000000 0000000 ustar/blktype 0000660 0001750 0000144 00000000000 07606136617 014752 4 ustar 00tarfile tarfile 0000003 0000000 ustar/chrtype 0000666 0001750 0000144 00000000000 07606136617 014764 3 ustar 00tarfile tarfile 0000001 0000003 ustar/fifotype 0000644 0001750 0000144 00000000000 07606136617 015126 6 ustar 00tarfile tarfile 0000000 0000000 ustar/sparse 0000644 0001750 0000144 00000250000 07606136617 014577 0 ustar 00tarfile tarfile 0000000 0000000 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ustar/umlauts-??????? 0000644 0001750 0000144 00000015543 07606136617 020137 0 ustar 00tarfile tarfile 0000000 0000000 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/1234567/longname0000644 0001750 0000144 00000015543 07606136617 045233 0 ustar 00tarfile tarfile 0000000 0000000 ustar/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345/12345 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
./ustar/linktest2/symtype 0000777 0001750 0000144 00000000000 07606136617 021323 2../linktest1/regtype ustar tarfile tarfile ustar/linktest1/regtype 0000644 0001750 0000144 00000015543 07606136617 015412 0 ustar tarfile tarfile Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
./ustar/linktest2/lnktype 0000644 0001750 0000144 00000000000 07606136617 022347 1./ustar/linktest1/regtype ustar tarfile tarfile symtype2 0000777 0001750 0000144 00000000000 07606136617 016500 2ustar/regtype ustar 00tarfile tarfile 0000000 0000000 ././@LongLink 0000000 0000000 0000000 00000001001 00000000000 011555 L ustar root root gnu/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/longname gnu/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/0000644 0001750 0000144 00000015543 07606136617 022717 0 ustar tarfile tarfile Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
././@LongLink 0000000 0000000 0000000 00000001001 00000000000 011554 K ustar root root gnu/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/longname ././@LongLink 0000000 0000000 0000000 00000001001 00000000000 011555 L ustar root root gnu/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/longlink gnu/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/0000644 0001750 0000144 00000000000 07606136617 034657 1gnu/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/ustar tarfile tarfile gnu/sparse 0000644 0001750 0000144 00000120000 07606136617 024245 S ustar tarfile tarfile 00000010000 00000010000 00000030000 00000010000 00000050000 00000010000 00000070000 00000010000 00000250000 00000110000 00000010000 00000130000 00000010000 00000150000 00000010000 00000170000 00000010000 00000210000 00000010000 00000230000 00000010000 00000250000 00000000000 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/misc/regtype-old-v7 644 1750 144 15543 7606136617 007662 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
misc/regtype-hpux-signed-chksum-??????? 0000644 0001750 0000144 00000015543 07606136617 020042 0 ustar 00tarfile tarfile 0000000 0000000 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
misc/regtype-old-v7-signed-chksum-??????? 644 1750 144 15543 7606136617 012151 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
misc/dirtype-old-v7/ 40755 1750 144 0 7606136617 007667 misc/regtype-suntar 0100644 0000145 0000012 00000000036 10550714670 0020273 X ustar 00lars staff 0000040 0000017 /tmp/PaxHeaders.378 30 mtime=1041808783.000000000
misc/regtype-suntar 0100644 0001750 0000144 00000015543 10550714670 0016111 0 ustar 00tarfile tarfile 0000040 0000017 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
misc/regtype-xstar 0000644 0001750 0000144 00000015543 07606136617 0020313 0 ustar 00lars users 0000000 0000000 07606136617 07606136617 tar Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
././@PaxHeader 0000600 0000000 0000000 00000001144 00000000000 0013633 x ustar 00root root 0000000 0000000 30 atime=1041808783.000000000
30 ctime=1041808783.000000000
30 mtime=1041808783.000000000
522 path=pax/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/longname
123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/0000644 0001750 0000144 00000015543 07606136617 024273 0 ustar 00tarfile tarfile 0000000 0000000 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
././@PaxHeader 0000600 0000000 0000000 00000002162 00000000000 0013634 x ustar 00root root 0000000 0000000 30 atime=1041808783.000000000
30 ctime=1041808783.000000000
30 mtime=1041808783.000000000
522 path=pax/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/longlink
526 linkpath=pax/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/longname
123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/0000644 0001750 0000144 00000000000 07606136617 036232 1pax/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/123/ustar 00tarfile tarfile 0000000 0000000 pax/PaxHeaders.12814/umlauts-??????? 0000644 0001750 0000144 00000000113 10550667367 017453 x ustar 00 0000000 0000000 35 path=pax/umlauts-ÄÖÜäöüß
20 atime=1168337112
20 ctime=1168338674
pax/umlauts-??????? 0000644 0001750 0000144 00000015543 07606136617 017571 0 ustar 00tarfile tarfile 0000000 0000000 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
/tmp/GlobalHead.26030.1 0000644 0001750 0000144 00000000073 10552150730 012753 g ustar 00 0000000 0000000 13 gname=bar
13 uname=foo
33 VENDOR.umlauts=ÄÖÜäöüß
pax/regtype1 0000644 0001750 0000144 00000015543 07606136617 014507 0 ustar 00tarfile tarfile 0000000 0000000 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
/tmp/GlobalHead.23988.1 0000644 0001750 0000144 00000000011 10552143626 012774 g ustar 00 0000000 0000000 9 uname=
pax/regtype2 0000644 0001750 0000144 00000015543 07606136617 014510 0 ustar 00tarfile tarfile 0000000 0000000 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
/tmp/GlobalHead.23988.1 0000644 0001750 0000144 00000000042 10552143626 013000 g ustar 00 0000000 0000000 17 uname=tarfile
17 gname=tarfile
pax/regtype3 0000644 0001750 0000144 00000015543 07606136617 014511 0 ustar 00tarfile tarfile 0000000 0000000 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
././@PaxHeader 0000600 0000000 0000000 00000000175 00000000000 013636 x ustar 00root root 0000000 0000000 30 atime=1041808783.000000000
30 ctime=1041808783.000000000
30 mtime=1041808783.000000000
11 uid=123
11 gid=123
13 size=7011
pax/regtype4 0000644 0001750 0000144 00000000000 00000000000 014755 0 ustar 00tarfile tarfile 0000000 0000000 Foreword for "Programming Python" (1st ed.)
As Python's creator, I'd like to say a few words about its origins, adding a
bit of personal philosophy.
Over six years ago, in December 1989, I was looking for a "hobby" programming
project that would keep me occupied during the week around Christmas. My office
(a government-run research lab in Amsterdam) would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus).
Today, I can safely say that Python has changed my life. I have moved to a
different continent. I spend my working days developing large systems in
Python, when I'm not hacking on Python or answering Python-related email. There
are Python T-shirts, workshops, mailing lists, a newsgroup, and now a book.
Frankly, my only unfulfilled wish is to have my picture on the front page of
the New York Times. But before I get carried away daydreaming, here are a few
tidbits from Python's past.
It all started with ABC, a wonderful teaching language that I had helped create
in the early eighties. It was an incredibly elegant and powerful language,
aimed at non-professional programmers. Despite all its elegance and power and
the availability of a free implementation, ABC never became popular in the
Unix/C world. I can only speculate about the reasons, but here's a likely one:
the difficulty of adding new "primitive" operations to ABC. It was a
monolithic, "closed system", with only the most basic I/O operations: read a
string from the console, write a string to the console. I decided not repeat
this mistake in Python.
Besides this intention, I had a number of other ideas for improvement over ABC,
and was eager to try them out. For instance, ABC's powerful data types turned
out to be less efficient than we hoped. There was too much emphasis on
theoretically optimal algorithms, and not enough tuning for common cases. I
also felt that some of ABC's features, aimed at novice programmers, were less
desirable for the (then!) intended audience of experienced Unix/C programmers.
For instance: ABC's ideosyncratic syntax (all uppercase keywords!); some
terminology (e.g. "how-to" instead of "procedure"); and the integrated
structured editor, which its users almost universally hated. Python would rely
more on the Unix infrastructure and conventions, without being Unix-bound. And
in fact, the first implementation was done on a Mac.
As it turned out, Python is remarkably free from many of the hang-ups of
conventional programming languages. This is perhaps due to my choice of
examples: besides ABC, my main influence was Modula-3. This is another language
with remarkable elegance and power, designed by a small, strong-willed team
(most of whom I had met during a summer internship at DEC's Systems Research
Center in Palo Alto). Imagine what Python would have looked like if I had
modelled it after the Unix shell and C instead! (Yes, I borrowed from C too,
but only its least controversial features, in my desire to please the Unix/C
audience.)
Any individual creation has its ideosyncracies, and occasionally its creator
has to justify these. Perhaps Python's most controversial feature is its use of
indentation for statement grouping, which derives directly from ABC. It is one
of the language's features that is dearest to my heart. It makes Python code
more readable in two ways. First, the use of indentation reduces visual clutter
and makes programs shorter, thus reducing the attention span needed to take in
a basic unit of code. Second, it allows the programmer less freedom in
formatting, thereby enabling a more uniform style, which makes it easier to
read someone else's code. (Compare, for instance, the three or four different
conventions for the placement of braces in C, each with strong proponents.)
This emphasis on readability is no accident. As an object-oriented language,
Python aims to encourage the creation of reusable code. Even if we all wrote
perfect documentation all of the time, code can hardly be considered reusable
if it's not readable. Many of Python's features, in addition to its use of
indentation, conspire to make Python code highly readable. This reflects the
philosophy of ABC, which was intended to teach programming in its purest form,
and therefore placed a high value on clarity.
Readability is often enhanced by reducing unnecessary variability. When
possible, there's a single, obvious way to code a particular construct. This
reduces the number of choices facing the programmer who is writing the code,
and increases the chance that will appear familiar to a second programmer
reading it. Yet another contribution to Python's readability is the choice to
use punctuation mostly in a conservative, conventional manner. Most operator
symbols are familiar to anyone with even a vague recollection of high school
math, and no new meanings have to be learned for comic strip curse characters
like @&$!.
I will gladly admit that Python is not the fastest running scripting language.
It is a good runner-up though. With ever-increasing hardware speed, the
accumulated running time of a program during its lifetime is often negligible
compared to the programmer time needed to write and debug it. This, of course,
is where the real savings can be made. While this is hard to assess
objectively, Python is considered a winner in coding time by most who have
tried it. In addition, many consider using Python a pleasure -- a better
recommendation is hard to imagine.
I am solely responsible for Python's strengths and shortcomings, even when some
of the code has been written by others. However, its success is the product of
a community, starting with the early adopters who picked it up when I first
published Python on the net, and who spread the word about it in their own
environment. They sent me their praise, criticism, feature requests, code
contributions, and personal revelations via email. They were willing to discuss
every aspect of Python in the mailing list that I soon set up, and educate me
or nudge me in the right direction where my initial intuition failed me. There
have been too many contributors to thank individually. I'll make one exception,
however: this book's author was one of Python's early adopters and evangelists.
With its publication, his longstanding wish (and mine!) of having a more
accessible description of Python than the standard set of manuals, is
fulfilled.
But enough rambling. I highly recommend this book to anyone interested in
learning Python, whether for personal improvement or as a career enhancement.
Take it away, Eric, the orchestra leader! (If you don't understand this last
sentence, you haven't watched enough Monty Python reruns.)
Guido van Rossum
Reston, VA, May 1996
misc/eof 0000644 0001750 0000144 00000000000 07606136617 012341 0 ustar tarfile tarfile