o Úøa^ã@sPddlmZddlmZddlmZddlmZmZedƒZ Gdd„deƒZ dS) é)Úpatch_vary_headers)ÚMiddlewareMixin)Ú_lazy_re_compile)Úcompress_sequenceÚcompress_stringz\bgzip\bc@seZdZdZdd„ZdS)ÚGZipMiddlewarez± Compress content if the browser allows gzip compression. Set the Vary header accordingly, so that caches will base their storage on the Accept-Encoding header. cCsÖ|js t|jƒdkr |S| d¡r|St|dƒ|j dd¡}t |¡s&|S|jr4t |j ƒ|_ |j d=nt |jƒ}t|ƒt|jƒkrD|S||_t t|jƒƒ|j d<| d¡}|rd| d¡rdd ||j d<d |j d<|S) NéÈzContent-Encoding)zAccept-EncodingÚHTTP_ACCEPT_ENCODINGÚzContent-LengthÚETagú"zW/Úgzip)Ú streamingÚlenÚcontentÚ has_headerrÚMETAÚgetÚre_accepts_gzipÚsearchrÚstreaming_contentÚheadersrÚstrÚ startswith)ÚselfÚrequestÚresponseÚaeÚcompressed_contentÚetag©r ú8/usr/lib/python3/dist-packages/django/middleware/gzip.pyÚprocess_responses*        zGZipMiddleware.process_responseN)Ú__name__Ú __module__Ú __qualname__Ú__doc__r"r r r r!r s rN) Údjango.utils.cacherÚdjango.utils.deprecationrÚdjango.utils.regex_helperrÚdjango.utils.textrrrrr r r r!Ús