ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ 7YKc@sddlZddlZddlZddlmZddlmZmZddlmZm Z ddl m Z m Z ddl mZmZejeZdadadadefdYZd efd YZdS( iN(tdatetime(tOpenResourceNamespaceManagert Container(tInvalidCacheBackendErrortMissingCacheParameter(tfile_synchronizertnull_synchronizer(tverify_directorytSyncDicttDatabaseNamespaceManagercBseZeZeZedZd d edd d dZ dZ dZ dZ dZ dZdZd Zd Zd Zd ZRS(cCsctdk rdSy/ddladdljaddlmaWntk r^tdnXdS(Ni(ttypess8Database cache backend requires the 'sqlalchemy' library(tsatNonet sqlalchemytsqlalchemy.pooltpoolR t ImportErrorR(tcls((sD/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/database.pyt_init_dependenciess   t beaker_cachec  stj||dkr%|n|r7||_n|rM|d|_n|jrft|jnpsd} fd} i|_t|_t|_t j j | | |_ dS(sCreates a database namespace manager ``url`` SQLAlchemy compliant db url ``sa_opts`` A dictionary of SQLAlchemy keyword options to initialize the engine with. ``optimistic`` Use optimistic session locking, note that this will result in an additional select when updating a cache value to compare version numbers. ``table_name`` The table name to use in the database for the cache. s/container_db_lockssa.urlc s}fd}tjj||}tj|tjdtjdttjdtj ddt tjdtj dt tjdtj dt tjd tj dt tj d}|jd t|S( Ncs5ds