Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15577383
D12807.id30784.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
25 KB
Referenced Files
None
Subscribers
None
D12807.id30784.diff
View Options
diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -282,21 +282,13 @@
'rsrc/image/icon/fatcow/source/tablet.png' => '49396799',
'rsrc/image/icon/fatcow/source/web.png' => '136ccb5d',
'rsrc/image/icon/fatcow/thumbnails/default.p100.png' => '7d490b01',
- 'rsrc/image/icon/fatcow/thumbnails/default160x120.png' => 'f2e8a2eb',
'rsrc/image/icon/fatcow/thumbnails/default280x210.png' => '43e8926a',
- 'rsrc/image/icon/fatcow/thumbnails/default60x45.png' => '0118abed',
'rsrc/image/icon/fatcow/thumbnails/image.p100.png' => 'da23cf97',
- 'rsrc/image/icon/fatcow/thumbnails/image160x120.png' => '79bb556a',
'rsrc/image/icon/fatcow/thumbnails/image280x210.png' => '91ae054a',
- 'rsrc/image/icon/fatcow/thumbnails/image60x45.png' => 'c5e1685e',
'rsrc/image/icon/fatcow/thumbnails/pdf.p100.png' => '87d5e065',
- 'rsrc/image/icon/fatcow/thumbnails/pdf160x120.png' => 'ac9edbf5',
'rsrc/image/icon/fatcow/thumbnails/pdf280x210.png' => '1c585653',
- 'rsrc/image/icon/fatcow/thumbnails/pdf60x45.png' => 'c0db4143',
'rsrc/image/icon/fatcow/thumbnails/zip.p100.png' => '6ea5aae4',
- 'rsrc/image/icon/fatcow/thumbnails/zip160x120.png' => '75f9cd0f',
'rsrc/image/icon/fatcow/thumbnails/zip280x210.png' => 'dfda5b8e',
- 'rsrc/image/icon/fatcow/thumbnails/zip60x45.png' => 'af11bf3e',
'rsrc/image/icon/lightbox/close-2.png' => 'cc40e7c8',
'rsrc/image/icon/lightbox/close-hover-2.png' => 'fb5d6d9e',
'rsrc/image/icon/lightbox/left-arrow-2.png' => '8426133b',
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -1495,7 +1495,6 @@
'PhabricatorCacheTTLGarbageCollector' => 'applications/cache/garbagecollector/PhabricatorCacheTTLGarbageCollector.php',
'PhabricatorCaches' => 'applications/cache/PhabricatorCaches.php',
'PhabricatorCalendarApplication' => 'applications/calendar/application/PhabricatorCalendarApplication.php',
- 'PhabricatorCalendarBrowseController' => 'applications/calendar/controller/PhabricatorCalendarBrowseController.php',
'PhabricatorCalendarController' => 'applications/calendar/controller/PhabricatorCalendarController.php',
'PhabricatorCalendarDAO' => 'applications/calendar/storage/PhabricatorCalendarDAO.php',
'PhabricatorCalendarEvent' => 'applications/calendar/storage/PhabricatorCalendarEvent.php',
@@ -2825,7 +2824,6 @@
'PholioImageUploadController' => 'applications/pholio/controller/PholioImageUploadController.php',
'PholioInlineController' => 'applications/pholio/controller/PholioInlineController.php',
'PholioInlineListController' => 'applications/pholio/controller/PholioInlineListController.php',
- 'PholioInlineThumbController' => 'applications/pholio/controller/PholioInlineThumbController.php',
'PholioMock' => 'applications/pholio/storage/PholioMock.php',
'PholioMockCommentController' => 'applications/pholio/controller/PholioMockCommentController.php',
'PholioMockEditController' => 'applications/pholio/controller/PholioMockEditController.php',
@@ -4839,7 +4837,6 @@
'PhabricatorCacheSpec' => 'Phobject',
'PhabricatorCacheTTLGarbageCollector' => 'PhabricatorGarbageCollector',
'PhabricatorCalendarApplication' => 'PhabricatorApplication',
- 'PhabricatorCalendarBrowseController' => 'PhabricatorCalendarController',
'PhabricatorCalendarController' => 'PhabricatorController',
'PhabricatorCalendarDAO' => 'PhabricatorLiskDAO',
'PhabricatorCalendarEvent' => array(
@@ -6313,7 +6310,6 @@
'PholioImageUploadController' => 'PholioController',
'PholioInlineController' => 'PholioController',
'PholioInlineListController' => 'PholioController',
- 'PholioInlineThumbController' => 'PholioController',
'PholioMock' => array(
'PholioDAO',
'PhabricatorMarkupInterface',
diff --git a/src/applications/files/controller/PhabricatorFileTransformController.php b/src/applications/files/controller/PhabricatorFileTransformController.php
--- a/src/applications/files/controller/PhabricatorFileTransformController.php
+++ b/src/applications/files/controller/PhabricatorFileTransformController.php
@@ -3,43 +3,36 @@
final class PhabricatorFileTransformController
extends PhabricatorFileController {
- private $transform;
- private $phid;
- private $key;
-
public function shouldRequireLogin() {
return false;
}
- public function willProcessRequest(array $data) {
- $this->transform = $data['transform'];
- $this->phid = $data['phid'];
- $this->key = $data['key'];
- }
-
- public function processRequest() {
- $viewer = $this->getRequest()->getUser();
+ public function handleRequest(AphrontRequest $request) {
+ $viewer = $this->getViewer();
// NOTE: This is a public/CDN endpoint, and permission to see files is
// controlled by knowing the secret key, not by authentication.
+ $source_phid = $request->getURIData('phid');
$file = id(new PhabricatorFileQuery())
->setViewer(PhabricatorUser::getOmnipotentUser())
- ->withPHIDs(array($this->phid))
+ ->withPHIDs(array($source_phid))
->executeOne();
if (!$file) {
return new Aphront404Response();
}
- if (!$file->validateSecretKey($this->key)) {
+ $secret_key = $request->getURIData('key');
+ if (!$file->validateSecretKey($secret_key)) {
return new Aphront403Response();
}
+ $transform = $request->getURIData('transform');
$xform = id(new PhabricatorTransformedFile())
->loadOneWhere(
'originalPHID = %s AND transform = %s',
- $this->phid,
- $this->transform);
+ $source_phid,
+ $transform);
if ($xform) {
return $this->buildTransformedFileResponse($xform);
@@ -48,35 +41,26 @@
$type = $file->getMimeType();
if (!$file->isViewableInBrowser() || !$file->isTransformableImage()) {
- return $this->buildDefaultTransformation($file);
+ return $this->buildDefaultTransformation($file, $transform);
}
// We're essentially just building a cache here and don't need CSRF
// protection.
$unguarded = AphrontWriteGuard::beginScopedUnguardedWrites();
- switch ($this->transform) {
+ switch ($transform) {
case 'thumb-profile':
$xformed_file = $this->executeThumbTransform($file, 50, 50);
break;
case 'thumb-280x210':
$xformed_file = $this->executeThumbTransform($file, 280, 210);
break;
- case 'thumb-220x165':
- $xformed_file = $this->executeThumbTransform($file, 220, 165);
- break;
case 'preview-100':
$xformed_file = $this->executePreviewTransform($file, 100);
break;
case 'preview-220':
$xformed_file = $this->executePreviewTransform($file, 220);
break;
- case 'thumb-160x120':
- $xformed_file = $this->executeThumbTransform($file, 160, 120);
- break;
- case 'thumb-60x45':
- $xformed_file = $this->executeThumbTransform($file, 60, 45);
- break;
default:
return new Aphront400Response();
}
@@ -85,16 +69,18 @@
return new Aphront400Response();
}
- $xform = new PhabricatorTransformedFile();
- $xform->setOriginalPHID($this->phid);
- $xform->setTransform($this->transform);
- $xform->setTransformedPHID($xformed_file->getPHID());
- $xform->save();
+ $xform = id(new PhabricatorTransformedFile())
+ ->setOriginalPHID($source_phid)
+ ->setTransform($transform)
+ ->setTransformedPHID($xformed_file->getPHID())
+ ->save();
return $this->buildTransformedFileResponse($xform);
}
- private function buildDefaultTransformation(PhabricatorFile $file) {
+ private function buildDefaultTransformation(
+ PhabricatorFile $file,
+ $transform) {
static $regexps = array(
'@application/zip@' => 'zip',
'@image/@' => 'image',
@@ -111,16 +97,10 @@
}
}
- switch ($this->transform) {
+ switch ($transform) {
case 'thumb-280x210':
$suffix = '280x210';
break;
- case 'thumb-160x120':
- $suffix = '160x120';
- break;
- case 'thumb-60x45':
- $suffix = '60x45';
- break;
case 'preview-100':
$suffix = '.p100';
break;
diff --git a/src/applications/files/storage/PhabricatorFile.php b/src/applications/files/storage/PhabricatorFile.php
--- a/src/applications/files/storage/PhabricatorFile.php
+++ b/src/applications/files/storage/PhabricatorFile.php
@@ -784,14 +784,6 @@
return $this->getTransformedURI('thumb-profile');
}
- public function getThumb60x45URI() {
- return $this->getTransformedURI('thumb-60x45');
- }
-
- public function getThumb160x120URI() {
- return $this->getTransformedURI('thumb-160x120');
- }
-
public function getPreview100URI() {
return $this->getTransformedURI('preview-100');
}
@@ -800,10 +792,6 @@
return $this->getTransformedURI('preview-220');
}
- public function getThumb220x165URI() {
- return $this->getTransfomredURI('thumb-220x165');
- }
-
public function getThumb280x210URI() {
return $this->getTransformedURI('thumb-280x210');
}
diff --git a/src/applications/pholio/application/PhabricatorPholioApplication.php b/src/applications/pholio/application/PhabricatorPholioApplication.php
--- a/src/applications/pholio/application/PhabricatorPholioApplication.php
+++ b/src/applications/pholio/application/PhabricatorPholioApplication.php
@@ -49,7 +49,6 @@
'inline/' => array(
'(?:(?P<id>\d+)/)?' => 'PholioInlineController',
'list/(?P<id>\d+)/' => 'PholioInlineListController',
- 'thumb/(?P<imageid>\d+)/' => 'PholioInlineThumbController',
),
'image/' => array(
'upload/' => 'PholioImageUploadController',
diff --git a/src/applications/pholio/controller/PholioInlineThumbController.php b/src/applications/pholio/controller/PholioInlineThumbController.php
deleted file mode 100644
--- a/src/applications/pholio/controller/PholioInlineThumbController.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-final class PholioInlineThumbController extends PholioController {
-
- private $imageid;
-
- public function shouldAllowPublic() {
- return true;
- }
-
- public function willProcessRequest(array $data) {
- $this->imageid = idx($data, 'imageid');
- }
-
- public function processRequest() {
- $request = $this->getRequest();
- $user = $request->getUser();
-
- $image = id(new PholioImage())->load($this->imageid);
-
- if ($image == null) {
- return new Aphront404Response();
- }
-
- $mock = id(new PholioMockQuery())
- ->setViewer($user)
- ->withIDs(array($image->getMockID()))
- ->executeOne();
-
- if (!$mock) {
- return new Aphront404Response();
- }
-
- $file = id(new PhabricatorFileQuery())
- ->setViewer($user)
- ->witHPHIDs(array($image->getFilePHID()))
- ->executeOne();
-
- if (!$file) {
- return new Aphront404Response();
- }
-
- return id(new AphrontRedirectResponse())->setURI($file->getThumb60x45URI());
- }
-
-}
diff --git a/webroot/rsrc/image/icon/fatcow/thumbnails/default160x120.png b/webroot/rsrc/image/icon/fatcow/thumbnails/default160x120.png
deleted file mode 100644
index 16d6fd4f907913415c3387189dd1129385865575..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 1006
zc%17D@N?(olHy`uVBq!ia0vp^3xK$SgAGWQF8Y}dq$EpRBT9nv(@M${i&7aJQ}UBi
z6+Ckj(^G>|6H_V+Po~;1FfdQ>ba4!+xb^0)ZN7**L&L+Fd--z&1!DvpMYu8)R$f}l
zP$l5f_w$AD6sbT*$3_9sDSsNjY)s-2TGY5-AWEfa!li})A%z<X1@Fu@SC_XnG~WFz
zwY)+uJ0&u1{nCr8XU5)-68~(&zah>jxPd`XfkS|?iBw9-K|q0t1%+xkw$=Bbw&AgF
z*NU${oB#FE!KHB@)%w2PKe2J@(F?qPwd?2p|CaIV)BLG@AK4}{)l5IBv`_sx-<nq{
z=JmgmtA0JbbG}=gPu@HJo6l;7)w3kl)F{U6{i|@~;Hn=7<+Z}L)cvyATb<pZUdQ=!
zsdD1C_PxgLpLX7SF7En5YQr%-n_FeknQ2y;*16#l&5zxTXSG__>$NcN-nN9}`x&2k
zvu5l1rDw55c&oQw@e3`D`q;eKM(^}A;d?e0dAGl_=VULhS94<QTRwH$y<N#ES)1m%
zng6lsDR}qe-pt<Rt{Mlp+`cbgyJeGT`IgdSADRquk4OGUy4<#*_HxRtKJml<w#df+
zEWCf_%FLgY*YD;zt@8DWy4WQ>A;R$1MW!Er=gn1|w?}4L{e~ZD`{VD;&`F)^d~|M^
zl>gZc4EOi5re9^&`Et2&zkQupoz=He%dktYr@wyP!oV8wQfh-=L!{NWgNM2c{=e)l
z`WhX_&|dw^{PuFU+tnt!nbvGzN_)C3YW=hy*Rs{)z6w035Wd{is}sJH)xY6!-odjh
z9Sp~3&dAv?*GzDMX+T5r+6E?(2gj%P=Q&+_cZXxcCsPHcnCsaG)I1^^lH-}V0vcW$
z8@^Q9@JG3bxm@vLncjh2yIdRIHL?D<$eX>h@O$FVUwOj6GF5H=Tz&2(lJNEQ)=!fA
zA2M^Uj$#b1vGrHv*ihH8xL@sD3qyAN?x%;{SBC9pdiIY=_rR{%1%mPG8`C4%829Zw
zsC=OO1&{pUU++%mW*5DCzAU2Q{pO9bVs^IGe<v?}^zr91Ikn#A|FU}L{%+U&_x?&n
z()X`^kDh(Wbe9Uw-ViS){8yv5I`f?T>|DlmA_>bQST4U<cX55i%wtKjKC5olb@<2r
yC)tY0r9r`gg@aV8gTb+ZLjaYU^?f}9GsB|HBh&pj<V%4Wn8DN4&t;ucLK6TEKe5XI
diff --git a/webroot/rsrc/image/icon/fatcow/thumbnails/default60x45.png b/webroot/rsrc/image/icon/fatcow/thumbnails/default60x45.png
deleted file mode 100644
index 145ea1eb636ff821dd906a27ae559c9844618868..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 762
zc$@+H0tNkvP)<h;3K|Lk000e1NJLTq002Ay001or1^@s6@^%PJ0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!oJmAMRCwC#nZ0h*KoG}g*6ZU=fg@Ld
z0wM)81S&d;gdP+STta$?s1X$uNFYQ<$qVoRr<e;8(Bv7QMT!s-O(GBw$R$y@*vpK+
z8iF|M#%Rs$SR>2w-fDjS&y06{XpDhTGIYQW*a16W2ke0VGhjs26OUeYw?mxmhdf{L
zIX#6?gJ}8d<15$ca&NyeBI58Q!#dfa=7U#eSX){BY{u>d0rQs?s}{<XdZH}Ai+AgQ
ziRuGA?1;`+rzQYzFM)YF51pGc?RgV)cAm^F(5+B9rIl1^WNGZtj6S8O9>9}vStJTp
zzx3eJ=_3R^-EQ0sI)75y2H@O$3S1L~@8MrP9;a0P$j0k6c)Ru;W~Yvp1}zTkQ7RYp
z%vudiUV}F&bg($nrkWOo76Z=ur$@?h$1UP%K~s7wIMF-+lg$RD_ZD2F^j^Moq20RQ
z?a~O5exs!o)}$CWEFAD5Wdh%rJ_UH^Ipja&n^6=uvcB>!(^Z3f(>h>QY*1jfhz5S#
z*oJ2d=VIT_!YIz4x}CsS3|P_F_1-S5ZSKbE<^rcRa(=Rvl?z&#(jL_zV$taEx3yVW
zOJ4aJ_E1C)BO~a)Nog5isEEQUNlyu2tct>;0c;>&ON*PSKn>e!rPZ*|7OXloJTkzV
zia1_02y`thp*+NaYYaRRT{?|!<^894eJo)SWy;*y<D%qRm^azurW=T%6eifv$k(!X
zN@IRV%v6D<W%w||>k@xfEn!8iLAZz+HWb+FB*5}7C^29^-4<Rub4*+no_ohO;4uxo
z!w+8{?DOXssm(hk->!M?A5wWJ^xx7rolcUsN_c&8fZxbJP^=ra0Q)R5uRBUw^Zz8@
sqFDP@09VNzumg6$4%h+PY`+8;0Iwg8LNtyxvH$=807*qoM6N<$g3|6-kpKVy
diff --git a/webroot/rsrc/image/icon/fatcow/thumbnails/image160x120.png b/webroot/rsrc/image/icon/fatcow/thumbnails/image160x120.png
deleted file mode 100644
index 90cc11c02d86c9654463b2148399cc4faa998ed6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 1459
zc%17D@N?(olHy`uVBq!ia0vp^3xK$SgAGWQF8Y}dq$EpRBT9nv(@M${i&7aJQ}UBi
z6+Ckj(^G>|6H_V+Po~;1FtCPtx;TbZ+<G(je6~!e%z^#y&z@7uRx&&2ESk;nMZ?K)
zFPCkYa$MDi5Rum>>mA-6Y;H2|ZxX-lEqbt-_3=?Tk(P$`0PQZ;g;F`py+1E5xjA?4
z85^J>vs08k%bPk`f7U$Mn4eyD|Ip*f@4wgHf0NQ%?8hJ{GEI|#1qd8~fI<cy$shF>
zlen~c3}4>l-?#7beJy#-Q=d-Qsc#I6x>o!3=xzOdZ|2-~a#$gGI%J>!eM{xPPV;}p
zZ!~SUsFGPfw`0$ze{Z;dty!Ea%eZjaTjl%Cw`TqhRtb%KqsSGps$u80%l=(QIIO!G
zICfZj9KHWe?&8#sOXbB?d9_m(AI#p~sn)W&`R|4Db?4?*|N8OZxkQ=_<M(+YzLRyQ
z=KuQm_|fK#@he2XN}Zcuel=OS`B8V>?yVBXSXpH3G{c;(T&{BLaa;HK9q-I3@`rY&
zR)*Ob%IBZ9*t270l&#*IHqD#f4v#M{;oST=sxD6L^Xpm8{jJY_um2V=KK)16wn?w*
zbPWSD!h5-04zvjd{0%;-_N!RxkQ)1=*l4xWmKz^eEs^=bZN_Z*Q{LMpyR(6#V!{>y
zSFgRrm4Qzag~J>Den%bs#k4eZxj=B~owwUvHf1ZRryc$AecH#6o`z{09$a}cjIp7-
z>u)^|IpmvLnKS!gMD+QkhG&;$E!th`cxtP5P#X86x_ZqMk>bX>N(xM7N8evi-F9m6
zVyTV$YThhbqvqfF<z36O-~VRVPj~xyDP+n1KQl$vDZAdBxTo6L=f7LWf~_rjebGio
zmpo8&?Fc{Sejw&|_%c0D!OQ87R^>{(US+x{U)$XNijVE8m)Bap@7$!jcj;-P%1^N$
z#c$WVDs>WUYVh6W`^t2|YNa{x|CZ*ZPrh|zt>}E~JvH2))0gfyT>tlDR_%-Ug{q(K
z9z8uN_m7UcU#;G@HOD?begt&v?Y4;;3*MaA?j2$~aYe)H`dW3*-+@!lywR#ZZ8SCK
z<?VvE;T@nL<9Knjh}rdU9MdoHU#78&vYMag%?LBO6f82Us@lqJ`J{Dm%xW$UT@w^{
zyyeJn7TlQMecRytoPVK{CT6}&%Qh-4H8#2b{rDeC>26W`IN8WXjvec3zV4el!!UFC
z)wIpGk4w#ObH5~5`R|PRq@K>0-BzM~=jTLEcr<U>!?myWddi%?ra5<|+kxMHUFS~y
zIII3-dS`Im`O0`kRS{7&iEQh|lgd}W{PXfx&y>4yH#YEXJpb$Cv(h`FYT}ITkJsOq
z`n}=HX2Gw=`T8T5?c%$>KYDFOPWb%vw;Ag=mu`{QPh{+9@Lio?>b5CIo9jly9)aSA
zDKFBbYjs`Nmhevhq!VhuWVXI#?vzV=uU~zTHe2`Bx8FuiKhk_9j~%vW$<axemVe^Z
zt+!qW>Z9+hXsEMcaXFy4D5U@2zux|PF?L_7Cv{br9tmVqeqgZ8%ks<aM?8uGjO}8Z
zH*#q5M~iLV{JOt`W5@TD8*{(T``d5F&X_p6%-byO-fY?L-`~m|wbHF=bbMO8_v-sr
zZl$YpEW(Zi@)i5YFWc&S;$mI;f%{K)E_us8_jf7K(x?L=^2cfvY+fZrNBc)l|Igdp
v@S!2ml!pTd8i0U-G6qh`f**f$4>0h5tH?=k_Wcbkg&90u{an^LB{Ts57wL|o
diff --git a/webroot/rsrc/image/icon/fatcow/thumbnails/image60x45.png b/webroot/rsrc/image/icon/fatcow/thumbnails/image60x45.png
deleted file mode 100644
index 9077e69586e8686ae34e77307f1e15c5d6c5b0c0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 1179
zc$@*71Z4Y(P)<h;3K|Lk000e1NJLTq002Ay001or1^@s6@^%PJ0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$JxN4CRCwC#n$L?IMHI)sulmRAxGQD{
z4~dv83pt7qP_IIc(Un|s@Dvo|DgQuX4jvS|c@(^8E>Q#z23#-Zpdc)GSYkrNfDm0w
z7P9V->||%Ud%DW^s;W1$(M?vSmT5>AJf^05`b~Z6{is(pL&g|9NloDiYYlJ%+yFPg
z4R8ZoqZW^<fQXV)AANT>ALwUFt@mx9ky412`S$Dcub<>%X)rcmZj%|qe(~N3<R!n8
z!i@rwdVOgGy!qk$Yy7UwvN=xRR4n@xcNYEv5+0li2&@^nU^#vS@E$ZVZeUd9c#AW_
z#b1_@*vvp|oSo!k&Gr9k_ktNuzj$!?duXgNyh9ngUCgkv&mDw#w**>Q#h~0b?sZQi
z_8<EF_OjJmo20cvnS!+{=NAxL=8Sn49sF$Xt>R^TMxSoOKRy{csr1%zS&B*Aj;z+V
zi!<mH*VrcySdso)`8zO?WLyXFD2d2VpmBO@Y+>eQsOfxxP1G5(XNrzqfSTefdT6F;
z$j2WFaizjrI4E$HofBa!O6S+)qu6ktv#cbvxN<FW9dqX#kX;21&x7Py?QeMths^pa
zxP^_&*6ZpOhTdW+ylmNPDc?)H+a^qIZeM`jxD1^w!Tj-tos25^#j3_Jtl?r)d~$*<
z^39>ou^znu^zT}czFd=giHA)RAYc6wrD^jT+eXp53CeF;52>Jy*Q;w8!{mU)!Ugv)
z&s;?5-7zw5SyINuxX9YAkJ<Al*nP=9XLO4G$|ZD;z7HuL#gz?enzX2jVdE?);hUHT
zMG5((Mtn+OmljVU?=EtG%Eh;Qf>Zdt<x9xAH*omaS5VsN6TMVd3k#nG9;(0|USA^y
z-u(MVMCr2(MLW{7)(NteA8hT6x?5O4%utf~&l6yBF<J5+Ko@;b>}Nn)S+XnlSx4JJ
zRxuofvv9DaWwtG>Y|`0P{Ic}Y@!t@&X3@(wFmq+giuC20+*3ZeiN4BnYGdJQM`#NL
znnaqo;$pWmesSwo(!#4JzDG0(T)i@5ug{%cLV2Ivdf=XoygpThNbO>nwN2f69=}c>
zlNw`JVAv!?c7{}Yf|nyVjO*9tpnH8=pjg`~(YMHY*XmhmN&QReY2;ap$EzN16LNKB
ze$Pdg>hb$5^)p2_)r-EUwzae!ze1J`Jn&vNyd~(uQQOVBIVY~6NwTG>s_*8(#hFI$
zevgf(_7-%zZ655-OIv**PmF>CXGIrl8+RP=$R{b<>Z=`am7L`K>65do!O!qYUu}i>
zWjCmWr44lWQ%kB_3~wLB@T;c4Ge{4rqY&UhfMcchXM_ES?-?s_8lyY+!Tgk*8}G+I
zDC~xVVNHMir%?+o8udROM09{(W?7~KNAJJV1Ir4_pFHNxaRPJYj7fV+x4%sW%5^7t
tqx`l+&A)gW;0Cw>Zh#x$`m}!p7y#Z%ch+0IL<|4`002ovPDHLkV1o2xKfV9}
diff --git a/webroot/rsrc/image/icon/fatcow/thumbnails/pdf160x120.png b/webroot/rsrc/image/icon/fatcow/thumbnails/pdf160x120.png
deleted file mode 100644
index 20f08f955bf72d402ad77cde599dec462218ba4b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 1654
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
diff --git a/webroot/rsrc/image/icon/fatcow/thumbnails/pdf60x45.png b/webroot/rsrc/image/icon/fatcow/thumbnails/pdf60x45.png
deleted file mode 100644
index 8a16eaf488e00f922e2ce0d77c0f6ec43ba311da..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 1378
zc$@)Z1)chdP)<h;3K|Lk000e1NJLTq002Ay001or1^@s6@^%PJ0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%1W80eRCwC#T3cuwRT%!x%+Bs)w@F&G
zx(Q-zOubS;TT8<R6G9)9il7aaCRM5^3Z>OP7(~*v7V$+2foPG6FPdZ%n_GnlQoKMf
z+L#hrq7+e+wp5a?O`6*#o!y!7KeMxI+-{m(XVab7{o!MVGv}Y3@BG(u5~k}qZY2?L
zi%FJnmT;Ev(iVpmWyYAJqpPc%ZZ_$fhSc&spUogJ231v$JYQ8+MFZiaG_6z?uKZs?
zl1qejt1>b&qBr~fo%B9&vA@}2(L?0uY7Y*b=N3<Cp;z5ggr=4jY^$zDWktoaO@4pd
zwyj&Y&|}rEG0dXQB?y86Q4|+MbguCNx{i)rh1csvWqJALFFHCd(y(Ovq{XevN$~4J
zh|V+gxSP0KxE%Nk1qB5tD=jT(Yi}P~EYfKuoGPN?a!JUM<rwKFe7-`m^rDbX8(~r8
zZpxB}$YQx#6diE8Wi0b}V(wjDR#r#}@lv`;J1oD!Oj_|)ThJpAnR{PJ37T75!R8bz
zjY`}Ll*mX{5<G;f_8}Z|X(1)TG#gXXK|H>0oq<H6MHbU(FAK-TaMJTBaZQIp2oC%L
zZFxSJ+fBtt1#e)uc<;O;<~_EIVcs#N1YV-tIdGId4Qb~)5M54)ysVk9Wov20!j!3i
zZ;t`nsn4kN85RdGS5{lcn^u-6>oOrpP)0ZAbJBdFemWZ&i#=!dCoH5=gUu|>N>%}<
z&wx!%MhHh66Sf2hGbWmuI!SPyRYgE=KXBWMIDOInF`T+p%*JE=qyJbn3cK!y<C9j3
z3X#kG_flIi5z)U1gwyBJ0!s}J(fDz-tsC0mFO7R9IbzS3#BM2R@C4<Qp!FQ3#8nJo
z!&;~fhiJ@cECgFbD`zH#1<}aT%Kih8Uf&K!&1MAiiy`fJnQxtdYf5yJZRZ#k&DKAO
z*d<FM5P;U(2kB&wQIDniw=nad5AJg(z&L5%OFO0iflG^#*uD0~9=P__8ZD-AR`hNy
z#Ip4WuBm`Nc-|Nb=jYkj!n`}uldvwuD6Whm?C*d_5140{q)HnH*PE{)_~H&s6+Z-Z
z<5So$HHG07tG^Ltr-xR?71Xr@MSl)7aN}p3ut;R|g~*DcL2i2Y9?0+4LHm6W%AwB@
z{_!-}%G)76uo~`98w@XC-<?G6dmmt!;lioeiO$~8%x`sh-rb~rkT7fSI?R)g*;0o3
z`k^$nL*7>lZQvYo$d#EaU$64mBlz042EFB*nqJNKKDklOdu3cx`^*!N3=%ep@`JhS
zb~$qwAsj~d%m8M0)gjma30zyANqm43>%qt&rh;fx#`_xs<HyZ|08TWV(WE8JDIJM7
z351~w2tM}`aO@Nu6vOk8#T>F+B*iFClY~)1fG|c-GMcoQu1|J$cjp?%F>@_Ugf&Tm
z=h849{^&EDt=omtoqO@ahx?#>)kB{h;)hrBdW~^*9U&XyVV}0pv$EMHD=w!?adl0N
zPf?VAy(p}z+Qdvy?K=MJ$MtvR)xWLh>_0ko`QYL5wLd#`-RPQc^lqoq$y%D5Ptffj
z@rQVpzS$ySo<MTVlSLsxIOdJZclU;t<*45)!N#hIi>;=MCR0{4)3Q-3+k$X3?1Xs;
z=MxIe%*w5Fg%FI(O*bN}C2HTSd~-U=6907-iT?mLVUF{~nBfhUm8K!%F}xHd`!5e!
k!db#u!db$0mcIoU0Lp_RQgVwEW&i*H07*qoM6N<$f~#YcIRF3v
diff --git a/webroot/rsrc/image/icon/fatcow/thumbnails/zip160x120.png b/webroot/rsrc/image/icon/fatcow/thumbnails/zip160x120.png
deleted file mode 100644
index fbe19e59f601befc61f4eb320229d6748236e536..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 1383
zc%17D@N?(olHy`uVBq!ia0vp^3xK$SgAGWQF8Y}dq$EpRBT9nv(@M${i&7aJQ}UBi
z6+Ckj(^G>|6H_V+Po~;1FtBoZx;TbZ+<G%NFkd88q~ZLTobvSTS%Hr?>GHcZz2HBP
z;G<%v?Dmp-VdokV;irx2$w?Ix#pN%|S6KMcNt&bcW&8y8dIlz531(Hd1n=#knnGgb
zw$IPKx%BQ_TKP$V+8_I#JV|?hX4}cL(~IBjH1^$_wpo+mzo?xz0|yW^00D&zoRSl)
zB&R*#ocFx-{#jj}T=}U<n=ejSQvdixCd<s8l+BSJYvbjvzYe;dape2&dFt2y<=nH3
zn^)s&Z|C#N_D{11%bTO!x4F+gdeSccb#Gx-)+x`52M-)?ZZChoEc<HK)-Nxv{EYXn
zsXCxib7WIc6MO2KsdMx0#7vs)y?s~G%WL^X<v-`u6g}xkF%do&s#Uao*PC^c>Cc}p
zjnFxj{{H>UAHRNoHZRdSy-Df8f!7zc`oiLLn-pGf%)R{c)R~^CIhw0G)>g-MUfZ~B
zm)g=GPt_W6PQec=zc>47Nl#v6WBc~q>N$3MBOQ7TrcYj#cJkxLLKT+-%f$^Wl{C{s
zZ605Ec(`oy?CgoBdp+!UZVT1z%RhglGuWe}!8u{+weNe^UC?@SY*Xj*Gg+E^kFwVt
zF1>%&W1+yQ;>C;K7S()d{;sxf=FSA^qZ6(!<$mXTr=>zRa_wf5*%d!)?se|?cyF$C
z*@-(li!c3J_SeLE(a(t8&&;={Y>QgHws3Z<+W|Y(8~!2&T2lM8_lk#@2p4{TxBcrq
zhj;(C>gB(^^;D_TP35};6VT7q2iE=EaVP8%Pld+02D9z|zBBJ!e=*B#QHxaSl}p!>
zw0CcMo5*i*;LwZ^PC*ZoY0DSeF6flFu}56?e99vZE2a|-D^ne;`E9JNwHKD{DwBB}
zz4Kb-`iXnepInrdET~{))}ORWx#n%3@l8S9{jA?rQvRKh{5z-cv*-8S95!MijP3dd
z=cYH*&H1Yr|0^=@e&n=j?d+iFzs~Do_C0#`w(8Q&h3^#=nD}Cwns*4_lW0uaE4Z`l
z?=I`to1bzwz1VzKy<Yv7+y-_TE9SDZk<ANd=6!q>YFYMX#h#6yOQ*gU-}&RQ>&!d*
z<K<qLT7PCXO33o{NRL<<8xu1{e4hMd{e6E<^?tkgtlECxVwTB_?V=a_-!+_7ot(RL
zn^J4dz21p6A4?t0SbQ{@zs=el6cfGDQ{vg(8+F2MIqePSOZX+u-~4#`)vZ}i4$YB%
zTm0LKNhu*Jc0<XZ(2mkAZGU||)-Gd8b2ew&*bsPp_K(XE0W3c2S@!?AB=)vNf9Iv_
z*!SCVg=@VGfN`*a>DJ}$KJ^UW^_u@z6sY^x-7ejK_V(8$&ssP2G&m>gOQ_f#48162
z`>ghK$-RV|A_4_3gzlVc@zfWu*vp?FAi&sesQ)UXw0`=vXq{X}K|#jf5A!R^_1~U(
z`Z-R4>D%IUdynvQbI+@;wOjlB$0PHkSJ##vc((Lm>Pg?FpF(BtUEEMSb<69ex?kQ)
z*}t5nzws8w43z}O_HYxo`4`tmT#vYBT7Mu*S>ccTw>vtF3P8ZX1OyZ^a7jA6`lEe-
ZA?l&&2?dA6*MTJ`gQu&X%Q~loCIHoEYfu0H
diff --git a/webroot/rsrc/image/icon/fatcow/thumbnails/zip60x45.png b/webroot/rsrc/image/icon/fatcow/thumbnails/zip60x45.png
deleted file mode 100644
index c66416c31882ee3a2fc2320e99d8ed26e8d0524b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 1078
zc$@(?1j+k}P)<h;3K|Lk000e1NJLTq002Ay001or1^@s6@^%PJ0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#*hxe|RCwC#nNLp>K@`B>%r5P=fTAX~
z$jJop3t;fZAHC_NhL}Ji6*zg|WK8@D`XL}Ke+nT&y%?_Y5fEs^1Ak(o1zKt-npoQP
zz1eM3+O3i}tGi(*c^UT2>~?<p-n{o_VY;rvMQR)_So45AU=P>>_JEz-R2dIpjHz#y
zmy`I%1HDuNtIW<&6jcSE&j*}yI4u;QfKoE&bH<=pEWUj_I5>!xr&hlsrDmXq{H<VX
zMPU6rZD?pnk4B^VyOou?v2;4E&n6N}^lt20t1Oq+%5Q&rXBT#M_v&PK?=z$i4&mwe
zIH+jp*?1h%`v+o-+RWS>ghC-0=<AEjBod2_pq;XZS=rghT}c#0sS(tnK0Y-?TL7X6
zUY;u+fPMBT2jOrS26}sKgO(n&2!<f2x02}Cn3xxzoIDFmZsPaDK6*iWd%JDWwg6j;
z@e*PPN^N9xlqL&Zx%vG~5YV&=^gVR%+4*^?(9(g)bvb8sf?h59D1l;&p=&GVm<UMX
zUKN5t4O*I;EAD;2zdw>#SV+psD5^A4Gib3ItJS(Xfd&Er0bV_~tFsf(noz!zo<=F_
z$?!0xvWIvXKsj~}a0QH80vpc6g)1*27=icn+{L*H<d09_PItEut5z~zrsh!K1{OBm
zH*Q*Z#I!K!PJVocJW4ruRTmlI>!GsuFh}lTs+g=q0i%zO8GD$(71A>!U8$xhHR8z9
z^1K$Nd^{72frgQo(i125M?EW9?|C~uKgmx^3Ns*Tgk$tpeVBFvK~ZVVO;6*sD)d(K
zg(%GVz}zASbJM!(Yaigt*8@1r<S^}ggN^kKp{H@H+|8K_fGO%4k-AzGv}zN4+}aYk
zmVQ=IjBC<c-(%e8_&sc870SOVS~9h{2@?~~;C9z7g#84o?^oebBm$>6PC3_=9{?Ja
zmgKsrR0=M&UWVr{UW%TsN#D2}WiE))+&V(j+6gX`%|H<IF!ctkIS%ZfSlE`d)JR9J
zoy}x1Ed@khIVss>&HuNDO&z79qg)RBnqTyET^VPtwXkBA{%7lJFu!SKvk2_dM6Z~@
zMnr}NU&37M($}uGVWeIYu1rz6qvOUOT-pu5R2|h+ggVoqh=8wNy{?;2dK$M1cHo96
zO$P$Y3K+pk4fLEW$<F63u5jt!ephCV6Oyxmt5T1wQ%(g~BDgeQUUhbrZ5b}{Tr3S3
z5%WvQWQ+J5BkLS%o|y0j=B2GuhWp`y+OWHca>a&RLJK@X*~YczoC4g0T{DW$rUL0F
w$_cKu;0RzhHSZtd9<T@O0eiqsZodQ=0I=oF&Dk;s9{>OV07*qoM6N<$g2S-(b^rhX
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, May 7, 1:46 PM (2 d, 8 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7431320
Default Alt Text
D12807.id30784.diff (25 KB)
Attached To
Mode
D12807: Remove unused file transforms
Attached
Detach File
Event Timeline
Log In to Comment