Hash function
Merge branch 'master' of github.com:shengd/cs345

Conflicts:
	build/classes/org/python/core/PyTuple$1.class
	build/classes/org/python/core/PyTuple$2.class
	build/classes/org/python/core/PyTuple.class
	build/classes/org/python/version.properties
	build/exposed/org/python/core/PyTuple.class
	build/gensrc/org/python/antlr/PythonLexer.java
	build/gensrc/org/python/antlr/PythonParser.java
	build/gensrc/org/python/antlr/PythonPartialLexer.java
	build/gensrc/org/python/antlr/PythonPartialParser.java
	dist/Lib/BaseHTTPServer$py.class
	dist/Lib/CGIHTTPServer$py.class
	dist/Lib/ConfigParser$py.class
	dist/Lib/Cookie$py.class
	dist/Lib/DocXMLRPCServer$py.class
	dist/Lib/HTMLParser$py.class
	dist/Lib/MimeWriter$py.class
	dist/Lib/Queue$py.class
	dist/Lib/SimpleHTTPServer$py.class
	dist/Lib/SimpleXMLRPCServer$py.class
	dist/Lib/SocketServer$py.class
	dist/Lib/StringIO$py.class
	dist/Lib/UserDict$py.class
	dist/Lib/UserList$py.class
	dist/Lib/UserString$py.class
	dist/Lib/_LWPCookieJar$py.class
	dist/Lib/_MozillaCookieJar$py.class
	dist/Lib/__future__$py.class
	dist/Lib/_abcoll$py.class
	dist/Lib/_rawffi$py.class
	dist/Lib/_strptime$py.class
	dist/Lib/_threading_local$py.class
	dist/Lib/_weakrefset$py.class
	dist/Lib/abc$py.class
	dist/Lib/aifc$py.class
	dist/Lib/anydbm$py.class
	dist/Lib/ast$py.class
	dist/Lib/asynchat$py.class
	dist/Lib/asyncore$py.class
	dist/Lib/atexit$py.class
	dist/Lib/base64$py.class
	dist/Lib/bdb$py.class
	dist/Lib/binhex$py.class
	dist/Lib/bisect$py.class
	dist/Lib/calendar$py.class
	dist/Lib/cgi$py.class
	dist/Lib/cgitb$py.class
	dist/Lib/chunk$py.class
	dist/Lib/cmd$py.class
	dist/Lib/code$py.class
	dist/Lib/codecs$py.class
	dist/Lib/codeop$py.class
	dist/Lib/collections$py.class
	dist/Lib/colorsys$py.class
	dist/Lib/commands$py.class
	dist/Lib/compileall$py.class
	dist/Lib/compiler/__init__$py.class
	dist/Lib/compiler/ast$py.class
	dist/Lib/compiler/consts$py.class
	dist/Lib/compiler/future$py.class
	dist/Lib/compiler/misc$py.class
	dist/Lib/compiler/pyassem$py.class
	dist/Lib/compiler/pycodegen$py.class
	dist/Lib/compiler/symbols$py.class
	dist/Lib/compiler/syntax$py.class
	dist/Lib/compiler/transformer$py.class
	dist/Lib/compiler/visitor$py.class
	dist/Lib/contextlib$py.class
	dist/Lib/cookielib$py.class
	dist/Lib/copy$py.class
	dist/Lib/copy_reg$py.class
	dist/Lib/csv$py.class
	dist/Lib/ctypes/__init__$py.class
	dist/Lib/datetime$py.class
	dist/Lib/dbexts$py.class
	dist/Lib/decimal$py.class
	dist/Lib/difflib$py.class
	dist/Lib/dircache$py.class
	dist/Lib/dis$py.class
	dist/Lib/distutils/__init__$py.class
	dist/Lib/distutils/archive_util$py.class
	dist/Lib/distutils/bcppcompiler$py.class
	dist/Lib/distutils/ccompiler$py.class
	dist/Lib/distutils/cmd$py.class
	dist/Lib/distutils/command/__init__$py.class
	dist/Lib/distutils/command/bdist$py.class
	dist/Lib/distutils/command/bdist_dumb$py.class
	dist/Lib/distutils/command/bdist_msi$py.class
	dist/Lib/distutils/command/bdist_rpm$py.class
	dist/Lib/distutils/command/bdist_wininst$py.class
	dist/Lib/distutils/command/build$py.class
	dist/Lib/distutils/command/build_clib$py.class
	dist/Lib/distutils/command/build_ext$py.class
	dist/Lib/distutils/command/build_py$py.class
	dist/Lib/distutils/command/build_scripts$py.class
	dist/Lib/distutils/command/clean$py.class
	dist/Lib/distutils/command/config$py.class
	dist/Lib/distutils/command/install$py.class
	dist/Lib/distutils/command/install_data$py.class
	dist/Lib/distutils/command/install_egg_info$py.class
	dist/Lib/distutils/command/install_headers$py.class
	dist/Lib/distutils/command/install_lib$py.class
	dist/Lib/distutils/command/install_scripts$py.class
	dist/Lib/distutils/command/register$py.class
	dist/Lib/distutils/command/sdist$py.class
	dist/Lib/distutils/command/upload$py.class
	dist/Lib/distutils/config$py.class
	dist/Lib/distutils/core$py.class
	dist/Lib/distutils/cygwinccompiler$py.class
	dist/Lib/distutils/debug$py.class
	dist/Lib/distutils/dep_util$py.class
	dist/Lib/distutils/dir_util$py.class
	dist/Lib/distutils/dist$py.class
	dist/Lib/distutils/emxccompiler$py.class
	dist/Lib/distutils/errors$py.class
	dist/Lib/distutils/extension$py.class
	dist/Lib/distutils/fancy_getopt$py.class
	dist/Lib/distutils/file_util$py.class
	dist/Lib/distutils/filelist$py.class
	dist/Lib/distutils/jythoncompiler$py.class
	dist/Lib/distutils/log$py.class
	dist/Lib/distutils/msvc9compiler$py.class
	dist/Lib/distutils/msvccompiler$py.class
	dist/Lib/distutils/mwerkscompiler$py.class
	dist/Lib/distutils/spawn$py.class
	dist/Lib/distutils/sysconfig$py.class
	dist/Lib/distutils/tests/__init__$py.class
	dist/Lib/distutils/tests/setuptools_build_ext$py.class
	dist/Lib/distutils/tests/setuptools_extension$py.class
	dist/Lib/distutils/tests/support$py.class
	dist/Lib/distutils/tests/test_bdist_wininst$py.class
	dist/Lib/distutils/tests/test_build_ext$py.class
	dist/Lib/distutils/tests/test_build_py$py.class
	dist/Lib/distutils/tests/test_build_scripts$py.class
	dist/Lib/distutils/tests/test_config$py.class
	dist/Lib/distutils/tests/test_core$py.class
	dist/Lib/distutils/tests/test_dist$py.class
	dist/Lib/distutils/tests/test_filelist$py.class
	dist/Lib/distutils/tests/test_install$py.class
	dist/Lib/distutils/tests/test_install_lib$py.class
	dist/Lib/distutils/tests/test_install_scripts$py.class
	dist/Lib/distutils/tests/test_msvc9compiler$py.class
	dist/Lib/distutils/tests/test_register$py.class
	dist/Lib/distutils/tests/test_sdist$py.class
	dist/Lib/distutils/tests/test_sysconfig$py.class
	dist/Lib/distutils/tests/test_unixccompiler$py.class
	dist/Lib/distutils/tests/test_upload$py.class
	dist/Lib/distutils/tests/test_util$py.class
	dist/Lib/distutils/tests/test_versionpredicate$py.class
	dist/Lib/distutils/text_file$py.class
	dist/Lib/distutils/unixccompiler$py.class
	dist/Lib/distutils/util$py.class
	dist/Lib/distutils/version$py.class
	dist/Lib/distutils/versionpredicate$py.class
	dist/Lib/doctest$py.class
	dist/Lib/dumbdbm$py.class
	dist/Lib/dummy_thread$py.class
	dist/Lib/dummy_threading$py.class
	dist/Lib/email/__init__$py.class
	dist/Lib/email/_parseaddr$py.class
	dist/Lib/email/base64mime$py.class
	dist/Lib/email/charset$py.class
	dist/Lib/email/encoders$py.class
	dist/Lib/email/errors$py.class
	dist/Lib/email/feedparser$py.class
	dist/Lib/email/generator$py.class
	dist/Lib/email/header$py.class
	dist/Lib/email/iterators$py.class
	dist/Lib/email/message$py.class
	dist/Lib/email/mime/__init__$py.class
	dist/Lib/email/mime/application$py.class
	dist/Lib/email/mime/audio$py.class
	dist/Lib/email/mime/base$py.class
	dist/Lib/email/mime/image$py.class
	dist/Lib/email/mime/message$py.class
	dist/Lib/email/mime/multipart$py.class
	dist/Lib/email/mime/nonmultipart$py.class
	dist/Lib/email/mime/text$py.class
	dist/Lib/email/parser$py.class
	dist/Lib/email/quoprimime$py.class
	dist/Lib/email/test/__init__$py.class
	dist/Lib/email/test/test_email$py.class
	dist/Lib/email/test/test_email_codecs$py.class
	dist/Lib/email/test/test_email_codecs_renamed$py.class
	dist/Lib/email/test/test_email_renamed$py.class
	dist/Lib/email/test/test_email_torture$py.class
	dist/Lib/email/utils$py.class
	dist/Lib/encodings/__init__$py.class
	dist/Lib/encodings/aliases$py.class
	dist/Lib/encodings/ascii$py.class
	dist/Lib/encodings/base64_codec$py.class
	dist/Lib/encodings/big5$py.class
	dist/Lib/encodings/big5hkscs$py.class
	dist/Lib/encodings/bz2_codec$py.class
	dist/Lib/encodings/charmap$py.class
	dist/Lib/encodings/cp037$py.class
	dist/Lib/encodings/cp1006$py.class
	dist/Lib/encodings/cp1026$py.class
	dist/Lib/encodings/cp1140$py.class
	dist/Lib/encodings/cp1250$py.class
	dist/Lib/encodings/cp1251$py.class
	dist/Lib/encodings/cp1252$py.class
	dist/Lib/encodings/cp1253$py.class
	dist/Lib/encodings/cp1254$py.class
	dist/Lib/encodings/cp1255$py.class
	dist/Lib/encodings/cp1256$py.class
	dist/Lib/encodings/cp1257$py.class
	dist/Lib/encodings/cp1258$py.class
	dist/Lib/encodings/cp424$py.class
	dist/Lib/encodings/cp437$py.class
	dist/Lib/encodings/cp500$py.class
	dist/Lib/encodings/cp737$py.class
	dist/Lib/encodings/cp775$py.class
	dist/Lib/encodings/cp850$py.class
	dist/Lib/encodings/cp852$py.class
	dist/Lib/encodings/cp855$py.class
	dist/Lib/encodings/cp856$py.class
	dist/Lib/encodings/cp857$py.class
	dist/Lib/encodings/cp860$py.class
	dist/Lib/encodings/cp861$py.class
	dist/Lib/encodings/cp862$py.class
	dist/Lib/encodings/cp863$py.class
	dist/Lib/encodings/cp864$py.class
	dist/Lib/encodings/cp865$py.class
	dist/Lib/encodings/cp866$py.class
	dist/Lib/encodings/cp869$py.class
	dist/Lib/encodings/cp874$py.class
	dist/Lib/encodings/cp875$py.class
	dist/Lib/encodings/cp932$py.class
	dist/Lib/encodings/cp949$py.class
	dist/Lib/encodings/cp950$py.class
	dist/Lib/encodings/euc_jis_2004$py.class
	dist/Lib/encodings/euc_jisx0213$py.class
	dist/Lib/encodings/euc_jp$py.class
	dist/Lib/encodings/euc_kr$py.class
	dist/Lib/encodings/gb18030$py.class
	dist/Lib/encodings/gb2312$py.class
	dist/Lib/encodings/gbk$py.class
	dist/Lib/encodings/hex_codec$py.class
	dist/Lib/encodings/hp_roman8$py.class
	dist/Lib/encodings/hz$py.class
	dist/Lib/encodings/idna$py.class
	dist/Lib/encodings/iso2022_jp$py.class
	dist/Lib/encodings/iso2022_jp_1$py.class
	dist/Lib/encodings/iso2022_jp_2$py.class
	dist/Lib/encodings/iso2022_jp_2004$py.class
	dist/Lib/encodings/iso2022_jp_3$py.class
	dist/Lib/encodings/iso2022_jp_ext$py.class
	dist/Lib/encodings/iso2022_kr$py.class
	dist/Lib/encodings/iso8859_1$py.class
	dist/Lib/encodings/iso8859_10$py.class
	dist/Lib/encodings/iso8859_11$py.class
	dist/Lib/encodings/iso8859_13$py.class
	dist/Lib/encodings/iso8859_14$py.class
	dist/Lib/encodings/iso8859_15$py.class
	dist/Lib/encodings/iso8859_16$py.class
	dist/Lib/encodings/iso8859_2$py.class
	dist/Lib/encodings/iso8859_3$py.class
	dist/Lib/encodings/iso8859_4$py.class
	dist/Lib/encodings/iso8859_5$py.class
	dist/Lib/encodings/iso8859_6$py.class
	dist/Lib/encodings/iso8859_7$py.class
	dist/Lib/encodings/iso8859_8$py.class
	dist/Lib/encodings/iso8859_9$py.class
	dist/Lib/encodings/johab$py.class
	dist/Lib/encodings/koi8_r$py.class
	dist/Lib/encodings/koi8_u$py.class
	dist/Lib/encodings/latin_1$py.class
	dist/Lib/encodings/mac_arabic$py.class
	dist/Lib/encodings/mac_centeuro$py.class
	dist/Lib/encodings/mac_croatian$py.class
	dist/Lib/encodings/mac_cyrillic$py.class
	dist/Lib/encodings/mac_farsi$py.class
	dist/Lib/encodings/mac_greek$py.class
	dist/Lib/encodings/mac_iceland$py.class
	dist/Lib/encodings/mac_latin2$py.class
	dist/Lib/encodings/mac_roman$py.class
	dist/Lib/encodings/mac_romanian$py.class
	dist/Lib/encodings/mac_turkish$py.class
	dist/Lib/encodings/mbcs$py.class
	dist/Lib/encodings/palmos$py.class
	dist/Lib/encodings/ptcp154$py.class
	dist/Lib/encodings/punycode$py.class
	dist/Lib/encodings/quopri_codec$py.class
	dist/Lib/encodings/raw_unicode_escape$py.class
	dist/Lib/encodings/rot_13$py.class
	dist/Lib/encodings/shift_jis$py.class
	dist/Lib/encodings/shift_jis_2004$py.class
	dist/Lib/encodings/shift_jisx0213$py.class
	dist/Lib/encodings/string_escape$py.class
	dist/Lib/encodings/tis_620$py.class
	dist/Lib/encodings/undefined$py.class
	dist/Lib/encodings/unicode_escape$py.class
	dist/Lib/encodings/unicode_internal$py.class
	dist/Lib/encodings/utf_16$py.class
	dist/Lib/encodings/utf_16_be$py.class
	dist/Lib/encodings/utf_16_le$py.class
	dist/Lib/encodings/utf_32$py.class
	dist/Lib/encodings/utf_32_be$py.class
	dist/Lib/encodings/utf_32_le$py.class
	dist/Lib/encodings/utf_7$py.class
	dist/Lib/encodings/utf_8$py.class
	dist/Lib/encodings/utf_8_sig$py.class
	dist/Lib/encodings/uu_codec$py.class
	dist/Lib/encodings/zlib_codec$py.class
	dist/Lib/expat$py.class
	dist/Lib/filecmp$py.class
	dist/Lib/fileinput$py.class
	dist/Lib/fnmatch$py.class
	dist/Lib/formatter$py.class
	dist/Lib/fpformat$py.class
	dist/Lib/fractions$py.class
	dist/Lib/ftplib$py.class
	dist/Lib/functools$py.class
	dist/Lib/genericpath$py.class
	dist/Lib/getopt$py.class
	dist/Lib/getpass$py.class
	dist/Lib/gettext$py.class
	dist/Lib/glob$py.class
	dist/Lib/grp$py.class
	dist/Lib/gzip$py.class
	dist/Lib/hashlib$py.class
	dist/Lib/heapq$py.class
	dist/Lib/hmac$py.class
	dist/Lib/htmlentitydefs$py.class
	dist/Lib/htmllib$py.class
	dist/Lib/httplib$py.class
	dist/Lib/ihooks$py.class
	dist/Lib/imaplib$py.class
	dist/Lib/imghdr$py.class
	dist/Lib/inspect$py.class
	dist/Lib/isql$py.class
	dist/Lib/javapath$py.class
	dist/Lib/javashell$py.class
	dist/Lib/keyword$py.class
	dist/Lib/linecache$py.class
	dist/Lib/locale$py.class
	dist/Lib/logging/__init__$py.class
	dist/Lib/logging/config$py.class
	dist/Lib/logging/handlers$py.class
	dist/Lib/macpath$py.class
	dist/Lib/macurl2path$py.class
	dist/Lib/mailbox$py.class
	dist/Lib/mailcap$py.class
	dist/Lib/markupbase$py.class
	dist/Lib/marshal$py.class
	dist/Lib/md5$py.class
	dist/Lib/mhlib$py.class
	dist/Lib/mimetools$py.class
	dist/Lib/mimetypes$py.class
	dist/Lib/mimify$py.class
	dist/Lib/modjy/__init__$py.class
	dist/Lib/modjy/modjy$py.class
	dist/Lib/modjy/modjy_exceptions$py.class
	dist/Lib/modjy/modjy_impl$py.class
	dist/Lib/modjy/modjy_log$py.class
	dist/Lib/modjy/modjy_params$py.class
	dist/Lib/modjy/modjy_publish$py.class
	dist/Lib/modjy/modjy_response$py.class
	dist/Lib/modjy/modjy_write$py.class
	dist/Lib/modjy/modjy_wsgi$py.class
	dist/Lib/modulefinder$py.class
	dist/Lib/multifile$py.class
	dist/Lib/mutex$py.class
	dist/Lib/netrc$py.class
	dist/Lib/new$py.class
	dist/Lib/nntplib$py.class
	dist/Lib/ntpath$py.class
	dist/Lib/nturl2path$py.class
	dist/Lib/numbers$py.class
	dist/Lib/opcode$py.class
	dist/Lib/optparse$py.class
	dist/Lib/os$py.class
	dist/Lib/pawt/__init__$py.class
	dist/Lib/pawt/colors$py.class
	dist/Lib/pawt/swing$py.class
	dist/Lib/pdb$py.class
	dist/Lib/pickle$py.class
	dist/Lib/pickletools$py.class
	dist/Lib/pipes$py.class
	dist/Lib/pkgutil$py.class
	dist/Lib/platform$py.class
	dist/Lib/plistlib$py.class
	dist/Lib/popen2$py.class
	dist/Lib/poplib$py.class
	dist/Lib/posixfile$py.class
	dist/Lib/posixpath$py.class
	dist/Lib/pprint$py.class
	dist/Lib/profile$py.class
	dist/Lib/pstats$py.class
	dist/Lib/pwd$py.class
	dist/Lib/py_compile$py.class
	dist/Lib/pycimport$py.class
	dist/Lib/pyclbr$py.class
	dist/Lib/pydoc$py.class
	dist/Lib/pydoc_topics$py.class
	dist/Lib/pyexpat$py.class
	dist/Lib/quopri$py.class
	dist/Lib/random$py.class
	dist/Lib/re$py.class
	dist/Lib/readline$py.class
	dist/Lib/repr$py.class
	dist/Lib/rfc822$py.class
	dist/Lib/rlcompleter$py.class
	dist/Lib/robotparser$py.class
	dist/Lib/runpy$py.class
	dist/Lib/sched$py.class
	dist/Lib/select$py.class
	dist/Lib/sets$py.class
	dist/Lib/sgmllib$py.class
	dist/Lib/sha$py.class
	dist/Lib/shelve$py.class
	dist/Lib/shlex$py.class
	dist/Lib/shutil$py.class
	dist/Lib/signal$py.class
	dist/Lib/site$py.class
	dist/Lib/smtpd$py.class
	dist/Lib/smtplib$py.class
	dist/Lib/sndhdr$py.class
	dist/Lib/socket$py.class
	dist/Lib/sre$py.class
	dist/Lib/sre_compile$py.class
	dist/Lib/sre_constants$py.class
	dist/Lib/sre_parse$py.class
	dist/Lib/stat$py.class
	dist/Lib/string$py.class
	dist/Lib/subprocess$py.class
	dist/Lib/symbol$py.class
	dist/Lib/tabnanny$py.class
	dist/Lib/tarfile$py.class
	dist/Lib/telnetlib$py.class
	dist/Lib/tempfile$py.class
	dist/Lib/textwrap$py.class
	dist/Lib/this$py.class
	dist/Lib/threading$py.class
	dist/Lib/timeit$py.class
	dist/Lib/token$py.class
	dist/Lib/tokenize$py.class
	dist/Lib/trace$py.class
	dist/Lib/traceback$py.class
	dist/Lib/types$py.class
	dist/Lib/unicodedata$py.class
	dist/Lib/unittest$py.class
	dist/Lib/urllib$py.class
	dist/Lib/urllib2$py.class
	dist/Lib/urlparse$py.class
	dist/Lib/user$py.class
	dist/Lib/uu$py.class
	dist/Lib/uuid$py.class
	dist/Lib/warnings$py.class
	dist/Lib/weakref$py.class
	dist/Lib/whichdb$py.class
	dist/Lib/wsgiref/__init__$py.class
	dist/Lib/wsgiref/handlers$py.class
	dist/Lib/wsgiref/headers$py.class
	dist/Lib/wsgiref/simple_server$py.class
	dist/Lib/wsgiref/util$py.class
	dist/Lib/wsgiref/validate$py.class
	dist/Lib/xdrlib$py.class
	dist/Lib/xml/FtCore$py.class
	dist/Lib/xml/Uri$py.class
	dist/Lib/xml/__init__$py.class
	dist/Lib/xml/dom/MessageSource$py.class
	dist/Lib/xml/dom/NodeFilter$py.class
	dist/Lib/xml/dom/__init__$py.class
	dist/Lib/xml/dom/domreg$py.class
	dist/Lib/xml/dom/minicompat$py.class
	dist/Lib/xml/dom/minidom$py.class
	dist/Lib/xml/dom/pulldom$py.class
	dist/Lib/xml/dom/xmlbuilder$py.class
	dist/Lib/xml/etree/ElementInclude$py.class
	dist/Lib/xml/etree/ElementPath$py.class
	dist/Lib/xml/etree/ElementTree$py.class
	dist/Lib/xml/etree/__init__$py.class
	dist/Lib/xml/etree/cElementTree$py.class
	dist/Lib/xml/sax/__init__$py.class
	dist/Lib/xml/sax/_exceptions$py.class
	dist/Lib/xml/sax/drivers2/__init__$py.class
	dist/Lib/xml/sax/drivers2/drv_javasax$py.class
	dist/Lib/xml/sax/handler$py.class
	dist/Lib/xml/sax/saxlib$py.class
	dist/Lib/xml/sax/saxutils$py.class
	dist/Lib/xml/sax/xmlreader$py.class
	dist/Lib/xmllib$py.class
	dist/Lib/xmlrpclib$py.class
	dist/Lib/zipfile$py.class
	dist/Lib/zlib$py.class
	dist/callbacker_test.jar
	dist/jython-dev.jar