robertphillips
c14b978613
Switch SkTileImageFilter over to new onFilterImage interface
...
This relies on: https://codereview.chromium.org/1816223002 (Update SkSpecialImage to be able to create tight SkImages and SkSurfaces)
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1810693003
Review URL: https://codereview.chromium.org/1810693003
2016-04-11 13:26:14 -07:00
mtklein
ad6a1901d1
nullptr -> "sans-serif" fixes bold in gm/colorwheel
...
This was an odd case where 8888 drew wrong and serialize-8888 was correct.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1880653002
Review URL: https://codereview.chromium.org/1880653002
2016-04-11 13:20:11 -07:00
cdalton
f8a6ce8d8c
Add GLSL support for texelFetch
...
Adds a cap and builder methods for texelFetch. This is required for
texel buffers. Also moves the texel buffer cap into the general shader
caps, and adds glTexBufferRange to the GL interface.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1869063005
Review URL: https://codereview.chromium.org/1869063005
2016-04-11 13:02:05 -07:00
cdalton
3f6f76f98b
Rename EmitArgs::fSamplers to fTexSamplers
...
Renames fSamplers to fTexSamplers in GrProcessor EmitArgs, and renames
GrGLSLTextureSampler to GrGLSLSampler. This will allow us to add a
second array of buffer samplers.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1862373003
Review URL: https://codereview.chromium.org/1862373003
2016-04-11 12:18:09 -07:00
cdalton
a6b92ad1f7
Infer sampler precision from pixel config
...
Adds a "samplerPrecision" method to GrGLSLCaps and updates
GrGLSLProgramBuilder to infer a sampler's precision based on its
config and visibility.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1846963004
Review URL: https://codereview.chromium.org/1846963004
2016-04-11 12:03:08 -07:00
senorblanco
21a465d7f4
Ensure all image filter tests have "ImageFilter" somewhere in the name.
...
This is for convenience, so that running
out/Release/dm --match ImageFilter runs them all.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1879553004
Review URL: https://codereview.chromium.org/1879553004
2016-04-11 11:58:39 -07:00
cdalton
1f50acff0d
Add appendPrecisionModifier method to GrGLSLShaderBuilder
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1881513002
Review URL: https://codereview.chromium.org/1881513002
2016-04-11 11:30:50 -07:00
robertphillips
fef28606d2
Switch SkPictureImageFilter over to new onFilterImage interface
...
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1779743002
TBR=bsalomon@google.com
Review URL: https://codereview.chromium.org/1779743002
2016-04-11 11:08:53 -07:00
borenet
25e0a0416e
Revert of Pass effects directly to fontcache (patchset #8 id:140001 of https://codereview.chromium.org/1863013003/ )
...
Reason for revert:
Seems to have broken the DEPS roll.
Original issue's description:
> Pass effects directly to fontcache
>
> BUG=skia:5176
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1863013003
>
> Committed: https://skia.googlesource.com/skia/+/c79172857c3f69cc46837e1beeae0c1ead377bb2
TBR=djsollen@google.com ,bungeman@google.com,mtklein@google.com,fmalita@chromium.org,msarett@google.com,reed@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:5176
Review URL: https://codereview.chromium.org/1872253004
2016-04-11 10:25:28 -07:00
robertphillips
29feef80de
Force upload to VRAM in filterImage
...
This forces the conversion of image filter result to VRAM (if it is required) prior to the filtered result being put into the ImageFilter cache.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1874763002
Review URL: https://codereview.chromium.org/1874763002
2016-04-11 10:20:24 -07:00
borenet
48b88cc1f6
Fixes for CommandBuffer bot
...
BUG=skia:4957
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1877883002
Review URL: https://codereview.chromium.org/1877883002
2016-04-11 10:16:01 -07:00
egdaniel
2a0bb0a665
Fix to zoom on Vulkan Viewer
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1876853003
Review URL: https://codereview.chromium.org/1876853003
2016-04-11 08:30:40 -07:00
reed
c79172857c
Pass effects directly to fontcache
...
BUG=skia:5176
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1863013003
Review URL: https://codereview.chromium.org/1863013003
2016-04-11 07:51:07 -07:00
reed
6dc14aab5e
adjust gm bounds for better content fit
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1876753003
TBR=djsollen
Review URL: https://codereview.chromium.org/1876753003
2016-04-11 07:46:38 -07:00
robertphillips
e6277de4eb
Switch SkDisplacementImageFilter over to new onFilterImage interface
...
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1846313002
Review URL: https://codereview.chromium.org/1846313002
2016-04-11 07:23:34 -07:00
robertphillips
82b043e873
Fix roll bot's win gn build
...
TBR=borenet@google.com ,bsalomon@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1873063002
Review URL: https://codereview.chromium.org/1873063002
2016-04-10 14:04:19 -07:00
mtklein
d58f840650
arithmetic mode with Sk4f
...
After reading the SSE version, I figured I'd show off the new hotness a little. This'll get us SSE, NEON and portable implementations all in one easy to read package.
Since we've been talking about it, it's worth noting the several ways this implementation is still not constant time:
- short circuits on 0x00 and 0xff coverage;
- floating point multiplication with untrusted k1-k4; if someone figures out a clever way to sometimes create denorm floats and sometimes not, there's a gigantic performance difference.
I would hazard the pin is constant time now though.
I've also fixed the lerp to lerp between dst and r instead of src and r. That can't have been right.
curr/maxrss loops min median mean max stddev samples config bench
9/9 MB 1 25.5ms 25.5ms 25.5ms 25.5ms 0% ▃▁▁▃▂▇▅▆▇█ 8888 Xfermode_arithmetic_enforce_pm_aa
9/9 MB 1 24.1ms 24.2ms 24.2ms 24.3ms 0% ▄▃▁▄█▆▆█▃█ 8888 Xfermode_arithmetic_aa
9/9 MB 1 102ms 102ms 102ms 103ms 0% ▁▅▂▆▂█▂█▁▂ 8888 Xfermode_arithmetic_enforce_pm
9/9 MB 1 94.8ms 95.4ms 95.2ms 95.8ms 0% ▅▅▁▁▁▁▄▇█▇ 8888 Xfermode_arithmetic
~~~~>
curr/maxrss loops min median mean max stddev samples config bench
9/9 MB 1 9.71ms 9.74ms 9.73ms 9.78ms 0% █▅▄▄▁▂▂▂▄▄ 8888 Xfermode_arithmetic_enforce_pm_aa
9/9 MB 1 9.5ms 9.57ms 9.58ms 9.7ms 1% ▂▁█▅▂▂▆▃▄▄ 8888 Xfermode_arithmetic_aa
9/9 MB 1 21.8ms 21.8ms 21.8ms 21.9ms 0% █▂▂▂▂▂▂▁▄▂ 8888 Xfermode_arithmetic_enforce_pm
9/9 MB 1 16.5ms 16.6ms 16.6ms 16.6ms 0% ▃█▁▁▄▄▁▁▆▅ 8888 Xfermode_arithmetic
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1873963003
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review URL: https://codereview.chromium.org/1873963003
2016-04-10 06:23:28 -07:00
update-skps
af79b2dd93
Update SKP version
...
Automatic commit by the RecreateSKPs bot.
TBR=
NO_MERGE_BUILDS
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1873033002
Review URL: https://codereview.chromium.org/1873033002
2016-04-10 00:30:13 -07:00
reed
9d77d62c0c
remove unused BML (binary xml) code
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1868423002
TBR=
Review URL: https://codereview.chromium.org/1868423002
2016-04-09 11:09:49 -07:00
robertphillips
12fa47d33f
Update LightingImageFilter to sk_sp
...
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1869763002
Review URL: https://codereview.chromium.org/1869763002
2016-04-08 16:28:09 -07:00
Melnikov.Sergey.V
601e36a5c5
Add AVX/AVX2 support for runtime check
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1867193002
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review URL: https://codereview.chromium.org/1867193002
2016-04-08 15:31:45 -07:00
robertphillips
e6356546d8
Fix memory leak in SkBlurImageFilter
...
TBR=caryclark@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1873923003
Review URL: https://codereview.chromium.org/1873923003
2016-04-08 14:52:52 -07:00
senorblanco
7adf9c1dd2
Add some benches for SkArithmeticMode.
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1868333002
Review URL: https://codereview.chromium.org/1868333002
2016-04-08 14:29:47 -07:00
herb
42da45d399
Fix context size for benchmakr.
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1871173002
Review URL: https://codereview.chromium.org/1871173002
2016-04-08 14:24:37 -07:00
robertphillips
ff3681156c
Add SkFUZZF to help whitelist imagefilter fuzz failures
...
The current use case for this is whitelisting MergeImageFilter failures when the number of inputs is too big. Presumably there will be other whitelisting use cases as we progress.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1873463002
Review URL: https://codereview.chromium.org/1873463002
2016-04-08 14:03:06 -07:00
robertphillips
23d2c18cb1
Fix scaledstrokes GM
...
Small fix to https://codereview.chromium.org/1873733003 (More cleanup in the Vulkan viewer)
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1875793002
Review URL: https://codereview.chromium.org/1875793002
2016-04-08 14:03:00 -07:00
robertphillips
651bb5fafe
Make some GMs animate
...
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1870133003
Review URL: https://codereview.chromium.org/1870133003
2016-04-08 13:35:14 -07:00
egdaniel
7cbffda6c8
Don't create new descriptor set for vulkan uniforms every draw
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1872553005
Review URL: https://codereview.chromium.org/1872553005
2016-04-08 13:27:53 -07:00
herb
9e0efe57ac
Add clone to Stage. Rename place to mix and PolymorphicUnion to Stage. Cleanup.
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1877483002
Review URL: https://codereview.chromium.org/1877483002
2016-04-08 13:25:28 -07:00
jvanverth
c265a92741
More cleanup in the Vulkan viewer
...
* add animation support for GMs
* don't load all SkPictures at start, only as needed
* don't update constantly, only for animation or stats
* hide/show stats
* scale slides up/down
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1873733003
Review URL: https://codereview.chromium.org/1873733003
2016-04-08 12:51:45 -07:00
reed
377add7426
Fix race condition in SkROBuffer.
...
SkBufferBlock::fUsed may be updated by the writer while a reader is
attempting to read it.
BUG=chromium:601578
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1872853002
Review URL: https://codereview.chromium.org/1872853002
2016-04-08 12:47:14 -07:00
mtklein
0576aa9c07
Serialize invNormRotation in SkLightingShader.
...
This fixes a serialize-8888 / 8888 GM mismatch.
This requires a picture bump so we know not to bother trying to read the
invNormRotation vector from older .SKPs. Any chance no one's ever made
one?
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1870443002
Just bumping the picture version.
TBR=reed@google.com
Review URL: https://codereview.chromium.org/1870443002
2016-04-08 12:19:50 -07:00
robertphillips
646125114b
Upgrade SkSpecialImage to have getTextureRef & getROPixels entry points
...
This more closely aligns the SkSpecialImage API with the SkImage API. In doing so it allows the image filters to handle SkImages that can sneak through while remaining encoded (e.g., if an input filter just returns a wrapped version of the source SkImage)
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1861643003
Review URL: https://codereview.chromium.org/1861643003
2016-04-08 12:10:42 -07:00
halcanary
89c2a0b8c1
SkPDF: Fix links to be more valid PDF/A
...
See:
https://github.com/veraPDF/veraPDF-validation-profiles/wiki/PDFA-Parts-2-and-3-rules#rule-632-1
https://github.com/veraPDF/veraPDF-validation-profiles/wiki/PDFA-Parts-2-and-3-rules#rule-632-2
BUG=skia:3010
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1867003004
Review URL: https://codereview.chromium.org/1867003004
2016-04-08 10:51:05 -07:00
halcanary
050ab5d858
SkPDF: fix pessimizing-move in PDFA code
...
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1863393004
Review URL: https://codereview.chromium.org/1863393004
2016-04-08 09:55:21 -07:00
bungeman
20f313bea7
Increase request cache size.
...
BUG=chromium:424082
See comment #63 .
Review URL: https://codereview.chromium.org/1875733002
2016-04-08 08:57:00 -07:00
robertphillips
ef6a47b4af
Update MatrixConvolutionImageFilter to sk_sp
...
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1869833002
Review URL: https://codereview.chromium.org/1869833002
2016-04-08 08:01:20 -07:00
jvanverth
2bb3b6d2bb
Add slides to VulkanViewer
...
Adds SKP loading, matching, and moving backwards as well as forwards
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1873543003
Review URL: https://codereview.chromium.org/1873543003
2016-04-08 07:24:09 -07:00
bungeman
53d5c6e744
Test CTFonts for equality, not just name and style.
...
The current code looks up CTFonts from descriptors by just name and style.
This is not sufficient, for example Avenir Book and Avenir Roman have the
same family name but the same basic style, but are obviously not the same.
BUG=skia:5162
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1860993004
Review URL: https://codereview.chromium.org/1860993004
2016-04-08 07:22:29 -07:00
bungeman
2c4bd0798e
Convert SkRefCnt to std::atomic.
...
This enables removing the more complicated atomic shims from SkAtomics.h.
TBR=reed
This doesn't actually change any API.
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-TSAN-Trybot,Test-Ubuntu-GCC-Golo-GPU-GT610-x86_64-Release-TSAN-Trybot
Review URL: https://codereview.chromium.org/1867863002
2016-04-08 06:58:52 -07:00
herb
6a5d7139ff
Add specialized rgba8888 unit sampler.
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1868723003
Review URL: https://codereview.chromium.org/1868723003
2016-04-08 06:49:59 -07:00
brianosman
a1e8f8d8f1
Decouple contrast boost from fake gamma.
...
Replace FakeGamma with FontWeightFlags. Largely mechanical, except for
the changes in ignorePreBlend. With this change, text GMs generally look
the same (or at least more similar) in 8888/srgb/gpu/gpusrgb configs.
No public API changes.
TBR=reed@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1866293003
Review URL: https://codereview.chromium.org/1866293003
2016-04-08 06:47:54 -07:00
robertphillips
b63c5766c3
More valgrind appeasement
...
BUG=skia:5164
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1867973004
Review URL: https://codereview.chromium.org/1867973004
2016-04-08 05:24:21 -07:00
hcm
23f9a8486c
Update Skia milestone to 52
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1868893003
TBR=reed@google.com
Review URL: https://codereview.chromium.org/1868893003
2016-04-07 22:58:19 -07:00
fmalita
e7365065ac
Revert of For *ToFixed, in debug mode, assert that the value is in range. (patchset #6 id:140001 of https://codereview.chromium.org/1824733002/ )
...
Reason for revert:
Asserts in Blink rolls:
https://storage.googleapis.com/chromium-layout-test-archives/linux_blink_rel/84520/layout-test-results/results.html
STDERR: [1:1:0407/120919:1455366829:INFO:SkFixed.h(88)] ../../third_party/skia/include/private/SkFixed.h:88: fatal error: ""truncf(x * (1 << 16)) == static_cast<float>
Original issue's description:
> For *ToFixed, in debug mode, assert that the value is in range.
>
> Use SkFloatPinToFixed in SkTwoPointConicalGradient.cpp because it is failing in DM. fmalita is working on replacing this code with the 4f version, so I'm not bothering to fix it. (The beginnings of a real fix are in https://codereview.chromium.org/1767163003 , which I do not plan to commit.)
>
> BUG=skia:4632
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1824733002
>
> Committed: https://skia.googlesource.com/skia/+/93dc33972cd6a418e84270298b856d2de08d9c1c
TBR=mtklein@google.com ,reed@google.com,benjaminwagner@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4632
Review URL: https://codereview.chromium.org/1868933004
2016-04-07 19:27:45 -07:00
cdalton
e2e71c2df4
Track GL buffer state based on unique resource ID
...
Reworks GrGLGpu to track GL buffer state based on the unique
GrGpuResource ID. This eliminates the need to notify the gpu object
whenever a buffer is deleted.
This change also allows us to remove the type specifier from GrBuffer.
At this point a buffer is just a chunk of memory, and the type
given at creation time is just a suggestion to the GL backend about
which target to bind to for updates.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1854283004
Committed: https://skia.googlesource.com/skia/+/deacc97bc63513b5eacaf21f858727f6e8b98ce5
Review URL: https://codereview.chromium.org/1854283004
2016-04-07 18:13:29 -07:00
lsalzman
8dea4e41a1
add header guard to SkPM4fPriv.h to prevent accidental multiple inclusion
...
This works around some issues with Firefox's unified sources build system.
BUG=skia:5173
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1869613003
Review URL: https://codereview.chromium.org/1869613003
2016-04-07 14:04:32 -07:00
egdaniel
5f3b0e00fb
Limit the size of descriptor pools in vulkan
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1867973002
Review URL: https://codereview.chromium.org/1867973002
2016-04-07 13:49:01 -07:00
fmalita
eadf3cf899
[4fGradient] Veto blitters for non-opaque paints
...
The current blitters don't support SrcOver, so we must ensure the colors
are opaque. Checking shader.colorsAreOpaque() is not enough as it
doesn't reflect the paint alpha.
Instead we should check for context flags & kOpaqueAlpha_Flag, which is
only set when both the color stops AND the paint are opaque.
R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1870773002
Review URL: https://codereview.chromium.org/1870773002
2016-04-07 13:16:13 -07:00
halcanary
78daeff1f9
SkPDF Fix PDF/A to be more valid
...
Some produced PDFs are recognized by veraPDF 0.13.2
(http://verapdf.org/software/ ) as valid PDF/A-2B.
BUG=skia:4535
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1864173004
Review URL: https://codereview.chromium.org/1864173004
2016-04-07 12:35:00 -07:00