diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/.DS_Store differ
diff --git a/package-lock.json b/package-lock.json
index a083db9..42d379d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2170,6 +2170,11 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
"integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
},
+ "common-tags": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
+ "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw=="
+ },
"commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
@@ -2281,6 +2286,11 @@
"resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz",
"integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ=="
},
+ "convert-hrtime": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-2.0.0.tgz",
+ "integrity": "sha1-Gb+yyRYvnhHC8Ewsed4rfoCVxic="
+ },
"convert-source-map": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
@@ -2645,6 +2655,11 @@
"resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
"integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs="
},
+ "death": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz",
+ "integrity": "sha1-AaqcQB7dknUFFEcLgmY5DGbGcxg="
+ },
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -3018,6 +3033,11 @@
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
"integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA="
},
+ "envinfo": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-5.10.0.tgz",
+ "integrity": "sha512-rXbzXWvnQxy+TcqZlARbWVQwgGVVouVJgFZhLVN5htjLxl1thstrP2ZGi0pXC309AbK7gVOPU+ulz/tmpCI7iw=="
+ },
"errno": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
@@ -4447,6 +4467,151 @@
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
},
+ "gatsby-cli": {
+ "version": "1.1.58",
+ "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-1.1.58.tgz",
+ "integrity": "sha1-Xdoka5h3q5JfalEvcjwgVXryLVc=",
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "bluebird": "^3.5.0",
+ "common-tags": "^1.4.0",
+ "convert-hrtime": "^2.0.0",
+ "core-js": "^2.5.0",
+ "envinfo": "^5.8.1",
+ "execa": "^0.8.0",
+ "fs-extra": "^4.0.1",
+ "hosted-git-info": "^2.5.0",
+ "lodash": "^4.17.4",
+ "pretty-error": "^2.1.1",
+ "resolve-cwd": "^2.0.0",
+ "source-map": "^0.5.7",
+ "stack-trace": "^0.0.10",
+ "update-notifier": "^2.3.0",
+ "yargs": "^11.1.0",
+ "yurnalist": "^0.2.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ },
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
+ },
+ "cliui": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "requires": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "execa": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz",
+ "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "fs-extra": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
+ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "requires": {
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ },
+ "dependencies": {
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+ },
+ "yargs": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz",
+ "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==",
+ "requires": {
+ "cliui": "^4.0.0",
+ "decamelize": "^1.1.1",
+ "find-up": "^2.1.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^9.0.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
+ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
+ "requires": {
+ "camelcase": "^4.1.0"
+ }
+ }
+ }
+ },
"get-caller-file": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
@@ -6221,6 +6386,11 @@
"lodash._reinterpolate": "~3.0.0"
}
},
+ "lodash.toarray": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
+ "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE="
+ },
"lodash.tonumber": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/lodash.tonumber/-/lodash.tonumber-4.0.3.tgz",
@@ -6630,6 +6800,14 @@
"lower-case": "^1.1.1"
}
},
+ "node-emoji": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz",
+ "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==",
+ "requires": {
+ "lodash.toarray": "^4.4.0"
+ }
+ },
"node-fetch": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
@@ -6796,6 +6974,11 @@
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
"integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0="
},
+ "object-path": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz",
+ "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk="
+ },
"object-visit": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
@@ -8670,6 +8853,14 @@
"react-transition-group": "^2.3.1"
}
},
+ "read": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
+ "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
+ "requires": {
+ "mute-stream": "~0.0.4"
+ }
+ },
"read-pkg": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
@@ -9578,6 +9769,11 @@
"tweetnacl": "~0.14.0"
}
},
+ "stack-trace": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
+ },
"static-extend": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
@@ -11234,6 +11430,36 @@
}
}
},
+ "yurnalist": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/yurnalist/-/yurnalist-0.2.1.tgz",
+ "integrity": "sha1-LTK5YYq2SRiRwTG9kKUpXhn9S60=",
+ "requires": {
+ "chalk": "^1.1.1",
+ "death": "^1.0.0",
+ "debug": "^2.2.0",
+ "detect-indent": "^5.0.0",
+ "inquirer": "^3.0.1",
+ "invariant": "^2.2.0",
+ "is-builtin-module": "^1.0.0",
+ "is-ci": "^1.0.10",
+ "leven": "^2.0.0",
+ "loud-rejection": "^1.2.0",
+ "node-emoji": "^1.0.4",
+ "object-path": "^0.11.2",
+ "read": "^1.0.7",
+ "rimraf": "^2.5.0",
+ "semver": "^5.1.0",
+ "strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "detect-indent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz",
+ "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50="
+ }
+ }
+ },
"zen-observable": {
"version": "0.8.8",
"resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.8.tgz",
diff --git a/package.json b/package.json
index 203741f..866d818 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,7 @@
"dependencies": {
"aws-amplify": "^0.4.8",
"bootstrap": "^4.1.1",
+ "gatsby-cli": "^1.1.58",
"react": "^16.4.1",
"react-dom": "^16.4.1",
"react-driftjs": "^1.0.8",
diff --git a/src/.DS_Store b/src/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/src/.DS_Store differ
diff --git a/src/images/haizol-logo.png b/src/images/haizol-logo.png
new file mode 100644
index 0000000..7b87347
Binary files /dev/null and b/src/images/haizol-logo.png differ
diff --git a/src/images/kickstarter-logo-color.eps b/src/images/kickstarter-logo-color.eps
new file mode 100644
index 0000000..72f1d0b
--- /dev/null
+++ b/src/images/kickstarter-logo-color.eps
@@ -0,0 +1,957 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%APL_DSC_Encoding: UTF8
+%APLProducer: (Version 10.13 (Build 17A405) Quartz PS Context)
+%%Title: (Unknown)
+%%Creator: (Unknown)
+%%CreationDate: (Unknown)
+%%For: (Unknown)
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 0 0 960 102
+%%EndComments
+%%BeginProlog
+%%BeginFile: cg-pdf.ps
+%%Copyright: Copyright 2000-2004 Apple Computer Incorporated.
+%%Copyright: All Rights Reserved.
+currentpacking true setpacking
+/cg_md 141 dict def
+cg_md begin
+/L3? languagelevel 3 ge def
+/bd{bind def}bind def
+/ld{load def}bd
+/xs{exch store}bd
+/xd{exch def}bd
+/cmmtx matrix def
+mark
+/sc/setcolor
+/scs/setcolorspace
+/dr/defineresource
+/fr/findresource
+/T/true
+/F/false
+/d/setdash
+/w/setlinewidth
+/J/setlinecap
+/j/setlinejoin
+/M/setmiterlimit
+/i/setflat
+/rc/rectclip
+/rf/rectfill
+/rs/rectstroke
+/f/fill
+/f*/eofill
+/sf/selectfont
+/s/show
+%/as/ashow
+/xS/xshow
+/yS/yshow
+/xyS/xyshow
+/S/stroke
+/m/moveto
+/l/lineto
+/c/curveto
+/h/closepath
+/n/newpath
+/q/gsave
+/Q/grestore
+counttomark 2 idiv
+%dup (number of ld's = )print == flush % *** how many
+{ld}repeat pop
+/SC{ % CSname
+ /ColorSpace fr scs
+}bd
+/sopr /setoverprint where{pop/setoverprint}{/pop}ifelse ld
+/soprm /setoverprintmode where{pop/setoverprintmode}{/pop}ifelse ld
+/cgmtx matrix def
+/sdmtx{cgmtx currentmatrix pop}bd
+/CM {cgmtx setmatrix}bd % pop the ctm: our gstate ctm on host is now identity
+/cm {cmmtx astore CM concat}bd % reset the matrix and then concat
+/W{clip newpath}bd
+/W*{eoclip newpath}bd
+
+statusdict begin product end dup (HP) anchorsearch{
+ pop pop pop % pop off the search results
+ true
+}{
+ pop % previous search result
+ (hp) anchorsearch{
+ pop pop true
+ }{
+ pop false
+ }ifelse
+}ifelse
+
+{ % HP is the product: we use this method of stroking because of a bug in their clone printers with certain T3 fonts
+ {
+ { % charCode Wx Wy
+ pop pop % charCode
+ (0)dup 0 4 -1 roll put
+ F charpath
+ }cshow
+ }
+}{
+ {F charpath}
+}ifelse
+/cply exch bd
+/cps {cply stroke}bd
+/pgsave 0 def
+/bp{/pgsave save store}bd
+/ep{pgsave restore showpage}def % dont' bind
+/re{4 2 roll m 1 index 0 rlineto 0 exch rlineto neg 0 rlineto h}bd
+
+/scrdict 10 dict def
+/scrmtx matrix def
+/patarray 0 def
+/createpat{patarray 3 1 roll put}bd
+/makepat{
+scrmtx astore pop
+gsave
+initgraphics
+CM
+patarray exch get
+scrmtx
+makepattern
+grestore
+setpattern
+}bd
+
+/cg_BeginEPSF{
+ userdict save/cg_b4_Inc_state exch put
+ userdict/cg_endepsf/cg_EndEPSF load put
+ count userdict/cg_op_count 3 -1 roll put
+ countdictstack dup array dictstack userdict/cg_dict_array 3 -1 roll put
+ 3 sub{end}repeat
+ /showpage {} def
+ 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+ 10 setmiterlimit [] 0 setdash newpath
+ false setstrokeadjust false setoverprint % don't use F
+}bd
+/cg_EndEPSF{
+ countdictstack 3 sub { end } repeat
+ cg_dict_array 3 1 index length 3 sub getinterval
+ {begin}forall
+ count userdict/cg_op_count get sub{pop}repeat
+ userdict/cg_b4_Inc_state get restore
+ F setpacking
+}bd
+
+/cg_biproc{currentfile/RunLengthDecode filter}bd
+/cg_aiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}bd
+/ImageDataSource 0 def
+L3?{
+ /cg_mibiproc{pop pop/ImageDataSource{cg_biproc}def}bd
+ /cg_miaiproc{pop pop/ImageDataSource{cg_aiproc}def}bd
+}{
+ /ImageBandMask 0 def
+ /ImageBandData 0 def
+ /cg_mibiproc{
+ string/ImageBandMask xs
+ string/ImageBandData xs
+ /ImageDataSource{[currentfile/RunLengthDecode filter dup ImageBandMask/readstring cvx
+ /pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd
+ }bd
+ /cg_miaiproc{
+ string/ImageBandMask xs
+ string/ImageBandData xs
+ /ImageDataSource{[currentfile/ASCII85Decode filter/RunLengthDecode filter
+ dup ImageBandMask/readstring cvx
+ /pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd
+ }bd
+}ifelse
+/imsave 0 def
+/BI{save/imsave xd mark}bd
+/EI{imsave restore}bd
+/ID{
+counttomark 2 idiv
+dup 2 add % leave room for imagetype and imagematrix
+dict begin
+{def} repeat
+pop % remove mark
+/ImageType 1 def
+/ImageMatrix[Width 0 0 Height neg 0 Height]def
+currentdict dup/ImageMask known{ImageMask}{F}ifelse exch
+% currentdict on stack
+L3?{
+ dup/MaskedImage known
+ {
+ pop
+ <<
+ /ImageType 3
+ /InterleaveType 2
+ /DataDict currentdict
+ /MaskDict
+ << /ImageType 1
+ /Width Width
+ /Height Height
+ /ImageMatrix ImageMatrix
+ /BitsPerComponent 1
+ /Decode [0 1]
+ currentdict/Interpolate known
+ {/Interpolate Interpolate}if
+ >>
+ >>
+ }if
+}if
+exch
+{imagemask}{image}ifelse
+end % pop imagedict from dict stack
+}bd
+
+/cguidfix{statusdict begin mark version end
+{cvr}stopped{cleartomark 0}{exch pop}ifelse
+2012 lt{dup findfont dup length dict begin
+{1 index/FID ne 2 index/UniqueID ne and
+{def} {pop pop} ifelse}forall
+currentdict end definefont pop
+}{pop}ifelse
+}bd
+/t_array 0 def
+/t_i 0 def
+/t_c 1 string def
+/x_proc{ % x y
+ exch t_array t_i get add exch moveto
+ /t_i t_i 1 add store
+}bd
+/y_proc{ % x y
+ t_array t_i get add moveto
+ /t_i t_i 1 add store
+}bd
+/xy_proc{
+ % x y
+ t_array t_i 2 copy 1 add get 3 1 roll get
+ 4 -1 roll add 3 1 roll add moveto
+ /t_i t_i 2 add store
+}bd
+/sop 0 def % don't bind sop
+/cp_proc/x_proc ld % default moveto proc is for xwidths only
+/base_charpath % string array
+{
+ /t_array xs
+ /t_i 0 def
+ { % char
+ t_c 0 3 -1 roll put
+ currentpoint
+ t_c cply sop
+ cp_proc
+ }forall
+ /t_array 0 def
+}bd
+/sop/stroke ld % default sop is stroke. Done here so we don't bind in /base_charpath
+
+% default sop is stroke
+/nop{}def
+/xsp/base_charpath ld
+/ysp{/cp_proc/y_proc ld base_charpath/cp_proc/x_proc ld}bd
+/xysp{/cp_proc/xy_proc ld base_charpath/cp_proc/x_proc ld}bd
+/xmp{/sop/nop ld /cp_proc/x_proc ld base_charpath/sop/stroke ld}bd
+/ymp{/sop/nop ld /cp_proc/y_proc ld base_charpath/sop/stroke ld}bd
+/xymp{/sop/nop ld /cp_proc/xy_proc ld base_charpath/sop/stroke ld}bd
+/refnt{ % newname encoding fontname
+findfont dup length dict copy dup
+/Encoding 4 -1 roll put
+definefont pop
+}bd
+/renmfont{ % newname fontname
+findfont dup length dict copy definefont pop
+}bd
+
+L3? dup dup{save exch}if
+
+% languagelevel2 ONLY code goes here
+
+/Range 0 def
+/DataSource 0 def
+/val 0 def
+/nRange 0 def
+/mulRange 0 def
+/d0 0 def
+/r0 0 def
+/di 0 def
+/ri 0 def
+/a0 0 def
+/a1 0 def
+/r1 0 def
+/r2 0 def
+/dx 0 def
+/Nsteps 0 def
+/sh3tp 0 def
+/ymax 0 def
+/ymin 0 def
+/xmax 0 def
+/xmin 0 def
+
+/setupFunEval % funDict -- % this calculates and sets up a function dict for evaulation.
+{
+ begin
+ /nRange Range length 2 idiv store
+ /mulRange % precompute the range data needed to map a sample value from the table to a range value
+ % this data looks like [ range0mul range0min range1mul range1min ... rangeN-1mul rangeN-1min ]
+ [
+ 0 1 nRange 1 sub
+ { % index
+ 2 mul/nDim2 xd % 2*dimension# we are dealing with
+ Range nDim2 get % ymin
+ Range nDim2 1 add get % ymin ymax
+ 1 index sub % ymin (ymax-ymin)
+ % xmin = 0, xmax = 255 (2^bitspersample - 1)
+ 255 div % ymin (ymax-ymin)/(xmax - xmin)
+ exch % (ymax-ymin)/(xmax - xmin) ymin
+ }for
+ ]store
+ end
+}bd
+
+/FunEval % val1 fundict -> comp1 comp2 ... compN
+{
+ begin
+ % the value passed in is the base index into the table
+ nRange mul /val xd % compute the actual index to the table
+ % since there are nRange entries per base index
+ 0 1 nRange 1 sub
+ {
+ dup 2 mul/nDim2 xd % dim
+ val % base value to use to do our lookup
+ add DataSource exch get % lookedupval
+ mulRange nDim2 get mul % lookedupval*(ymax-ymin)/(xmax-xmin)
+ mulRange nDim2 1 add get % lookedupval*(ymax-ymin)/(xmax-xmin) ymin
+ add % interpolated result
+ }for % comp1 comp2 ... compN
+ end
+}bd
+
+/max % a b -> max(a, b)
+{
+ 2 copy lt
+ {exch pop}{pop}ifelse
+}bd
+
+/sh2
+{ % emulation of shading type 2. Assumes shading dictionary is top dictionary on the dict stack
+ /Coords load aload pop % x0 y0 x1 y1
+ 3 index 3 index translate % origin is now at beginning point of shading
+ % x0 y0 x1 y1
+ 3 -1 roll sub % x0 x1 y1-y0
+ 3 1 roll exch % y1-y0 x1 x0
+ sub % y1-y0 x1-x0
+ 2 copy
+ dup mul exch dup mul add sqrt % length of segment between two points
+ dup
+ scale
+ atan % atan (dy/dx)
+ %dup (rotation angle = )print ==
+ rotate % now line between 0,0 and 1,0 is the line perpendicular to which the axial lines are drawn
+
+ /Function load setupFunEval % may need to setup function dictionary by calling setupFunEval
+
+ % this is now specific to axial shadings. Compute the maximum bounds to fill
+ clippath {pathbbox}stopped {0 0 0 0}if newpath % x0 y0 x1 y1
+ /ymax xs
+ /xmax xs
+ /ymin xs
+ /xmin xs
+ currentdict/Extend known
+ {
+ /Extend load 0 get
+ {
+ 0/Function load FunEval sc % evaluate the function to get a color and set it
+ xmin ymin xmin abs ymax ymin sub rectfill
+ }if
+ }if
+ % paint the rects. The sampling frequency is that of our table
+ /Nsteps/Function load/Size get 0 get 1 sub store
+ /dx 1 Nsteps div store
+ gsave
+ /di ymax ymin sub store
+ /Function load
+ % loop Nsteps + 1 times, incrementing the index by 1 each time
+ 0 1 Nsteps
+ {
+ 1 index FunEval sc
+ 0 ymin dx di rectfill
+ dx 0 translate
+ }for
+ pop % pop our function
+ grestore % origin is back to start point
+ currentdict/Extend known
+ {
+ /Extend load 1 get
+ {
+ Nsteps/Function load FunEval sc % last element
+ 1 ymin xmax 1 sub abs ymax ymin sub rectfill
+ }if
+ }if
+}bd
+
+/shp % this paints our shape for shading type 3
+{ % x1 r1 x0 r0 -
+ 4 copy
+
+ % fill interior arc
+ dup 0 gt{
+ 0 exch a1 a0 arc
+ }{
+ pop 0 moveto
+ }ifelse
+
+ dup 0 gt{
+ 0 exch a0 a1 arcn
+ }{
+ pop 0 lineto
+ }ifelse
+
+ fill
+
+ % fill exterior arc
+ dup 0 gt{
+ 0 exch a0 a1 arc
+ }{
+ pop 0 moveto
+ }ifelse
+
+ dup 0 gt{
+ 0 exch a1 a0 arcn
+ }{
+ pop 0 lineto
+ }ifelse
+
+ fill
+}bd
+
+/calcmaxs
+{ % calculate maximum distance vector from origin to corner points
+ % of bbox
+ xmin dup mul ymin dup mul add sqrt % (xmin2 + ymin2)
+ xmax dup mul ymin dup mul add sqrt % (xmax2 + ymin2)
+ xmin dup mul ymax dup mul add sqrt % (xmin2 + ymax2)
+ xmax dup mul ymax dup mul add sqrt % (xmax2 + ymax2)
+ max max max % maximum value
+}bd
+
+/sh3
+{ % emulation of shading type 3. Assumes shading dictionary is top dictionary on the dict stack
+ /Coords load aload pop % x0 y0 r1 x1 y1 r2
+ 5 index 5 index translate % origin is now at first circle origin
+ 3 -1 roll 6 -1 roll sub % y0 r1 y1 r2 dx
+ 3 -1 roll 5 -1 roll sub % r1 r2 dx dy
+ 2 copy dup mul exch dup mul add sqrt
+ /dx xs % r1 r2 dx dy
+ 2 copy 0 ne exch 0 ne or
+ {
+ % r1 r2 dx dy
+ exch atan rotate % we are now rotated so dy is zero and positive values of dx move us as expected
+ }{
+ pop pop
+ }ifelse
+ % r1 r2
+ /r2 xs
+ /r1 xs
+ /Function load
+ dup/Size get 0 get 1 sub % this is the size of our table minus 1
+ /Nsteps xs % at some point we should optimize this better so NSteps is based on needed steps for the device
+ setupFunEval % may need to setup function dictionary by calling setupFunEval
+ % determine the case:
+ % case 0: circle1 inside circle2
+ % case 1: circle 2 inside circle 1
+ % case 2: r1 = r2
+ % case 3: r1 != r2
+ dx r2 add r1 lt{
+ % circle 2 inside of circle 1
+ 0
+ }{
+ dx r1 add r2 le
+ { % circle 1 inside of circle 2
+ 1
+ }{ % circles don't contain each other
+ r1 r2 eq
+ { % equal
+ 2
+ }{ % r1 != r2
+ 3
+ }ifelse
+ }ifelse
+ }ifelse
+ /sh3tp xs % sh3tp has the number of our different cases
+ clippath {pathbbox}stopped {0 0 0 0}if
+ newpath % x0 y0 x1 y1
+ /ymax xs
+ /xmax xs
+ /ymin xs
+ /xmin xs
+
+ % Arc angle atan( sqrt((dx*dx + dy*dy) - dr*dr), dr)
+ dx dup mul r2 r1 sub dup mul sub dup 0 gt
+ {
+ sqrt r2 r1 sub atan
+ /a0 exch 180 exch sub store
+ /a1 a0 neg store
+ }{
+ pop
+ /a0 0 store
+ /a1 360 store
+ }ifelse
+
+ currentdict/Extend known
+ {
+ /Extend load 0 get r1 0 gt and % no need to extend if the radius of the first end is 0
+ {
+ 0/Function load FunEval sc % evaluate the function to get a color and set it
+ % case 0: circle1 inside circle2
+ % case 1: circle 2 inside circle 1
+ % case 2: circles don't contain each other and r1 == r2
+ % case 3: circles don't contain each other and r1 != r2
+ {
+ { % case 0
+ dx 0 r1 360 0 arcn
+ xmin ymin moveto
+ xmax ymin lineto
+ xmax ymax lineto
+ xmin ymax lineto
+ xmin ymin lineto
+ eofill % for the bigger radius we fill everything except our circle
+ }
+ { % case 1
+ r1 0 gt{0 0 r1 0 360 arc fill}if
+ }
+ { % case 2
+ % r1 == r2, extend 0
+ % r3 = r, x3 = -(abs(minx) + r), x1 = 0
+
+ % x(i+1) r(i+1) x(i) r(i) shp
+ 0 r1 xmin abs r1 add neg r1 shp
+ }
+ { % case 3
+ % no containment, r1 != r2
+
+ r2 r1 gt{ % the endpoint we are drawing is that with a circle of zero radius
+ % x(i+1) r(i+1) x(i) r(i) shp
+ 0 r1
+ r1 neg r2 r1 sub div dx mul % this is point of beginning circle
+ 0 % point of ending circle
+ shp % takes x(i+1) r(i+1) x(i) r(i)
+ }{ % the first circle is the bigger of the two
+ % we find a circle on our line which is outside the bbox in the
+ % negative direction
+ % x(i+1) r(i+1) x(i) r(i) shp
+ 0 r1 calcmaxs % 0 r1 maxs
+ dup
+ % calculating xs: (-(maxs+r2)*x2)/(x2-(r1-r2))
+ r2 add dx mul dx r1 r2 sub sub div
+ neg % maxs xs'
+ exch 1 index % xs' maxs xs'
+ abs exch sub
+ shp
+ }ifelse
+ }
+ }sh3tp get exec % execute the extend at beginning proc for our shading type
+ }if
+ }if
+
+ % now do the shading
+ /d0 0 store
+ /r0 r1 store
+ /di dx Nsteps div store
+ /ri r2 r1 sub Nsteps div store
+ /Function load
+ 0 1 Nsteps
+ { % function t(i)
+ 1 index FunEval sc
+ d0 di add r0 ri add d0 r0 shp
+ {
+ % fill interior arc
+ d0 0 r0 a1 a0 arc
+ d0 di add 0 r0 ri add a0 a1 arcn
+ fill
+
+ % fill exterior arc
+ d0 0 r0 a0 a1 arc
+ d0 di add 0 r0 ri add a1 a0 arcn
+ fill
+ }pop
+
+ % advance to next
+ /d0 d0 di add store
+ /r0 r0 ri add store
+ }for
+ pop % pop our function dict
+
+ % handle Extend
+ currentdict/Extend known
+ {
+ /Extend load 1 get r2 0 gt and % no need to extend if the radius of the last end is 0
+ {
+ Nsteps/Function load FunEval sc % last element
+ % case 0: circle1 inside circle2
+ % case 1: circle 2 inside circle 1
+ % case 2: circles don't contain each other and r1 == r2
+ % case 3: circles don't contain each other and r1 != r2
+ {
+ {
+ dx 0 r2 0 360 arc fill
+ }
+ {
+ dx 0 r2 360 0 arcn
+ xmin ymin moveto
+ xmax ymin lineto
+ xmax ymax lineto
+ xmin ymax lineto
+ xmin ymin lineto
+ eofill % for the bigger radius we fill everything except our circle
+ }
+ { % r1 == r2, extend 1
+ % r3 = r, x3 = (abs(xmax) + r), x1 = dx
+ % x(i+1) r(i+1) x(i) r(i) shp
+ xmax abs r1 add r1 dx r1 shp
+ }
+ { % no containment, r1 != r2
+
+ r2 r1 gt{
+ % we find a circle on our line which is outside the bbox in the
+ % positive direction
+ % x(i+1) r(i+1) x(i) r(i) shp
+ calcmaxs dup % maxs maxs
+ % calculating xs: ((maxs+r1)*x2)/(x2-(r2-r1))
+ r1 add dx mul dx r2 r1 sub sub div % maxs xs
+ exch 1 index % xs maxs xs
+ exch sub
+ dx r2
+ shp
+ }{ % the endpoint we are drawing is that with a circle of zero radius
+ % x(i+1) r(i+1) x(i) r(i) shp
+ r1 neg r2 r1 sub div dx mul % this is point of ending circle
+ 0 % radius of ending circle
+ dx % point of starting circle
+ r2 % radius of starting circle
+ shp
+ }ifelse
+ }
+ }
+ sh3tp get exec % execute the extend at end proc for our shading type
+ }if
+ }if
+}bd
+/sh % emulation of shfill operator for type 2 and type 3 shadings based on type 0 functions
+{ % shadingDict --
+ begin
+ /ShadingType load dup dup 2 eq exch 3 eq or
+ { % shadingtype
+ gsave
+ newpath
+ /ColorSpace load scs
+ currentdict/BBox known
+ {
+ /BBox load aload pop % llx lly urx ury
+ 2 index sub % llx lly urx ury-lly
+ 3 index % llx lly urx ury-lly llx
+ 3 -1 roll exch sub
+ exch rectclip
+ }if
+ 2 eq
+ {sh2}{sh3}ifelse
+ grestore
+ }{
+ % shadingtype
+ pop
+ (DEBUG: shading type unimplemented\n)print flush
+ }ifelse
+ end
+}bd
+
+% end of language level 2 ONLY code
+
+{restore}if not dup{save exch}if
+% languagelevel3 ONLY code goes here
+ L3?{ % we do these loads conditionally or else they will fail on a level 2 printer
+ /sh/shfill ld
+ /csq/clipsave ld
+ /csQ/cliprestore ld
+ }if
+{restore}if
+
+%currentdict dup maxlength exch length sub (number of extra slots in md = )print == flush % *** how many entries are free
+end
+setpacking
+% count 0 ne { pstack(***extras on stack during prolog execution***\n)print flush}if % *** BARK if anything is left on stack
+%%EndFile
+%%EndProlog
+%%BeginSetup
+%%EndSetup
+%%Page: 1 1
+%%PageBoundingBox: 0 0 960 102
+%%BeginPageSetup
+cg_md begin
+bp
+sdmtx
+[ /CIEBasedABC 4 dict dup begin
+/WhitePoint [ 0.9505 1.0000 1.0891 ] def
+/DecodeABC [
+{ 1.0 0.0 3 -1 roll 1 index 1 index le { exch pop} { pop } ifelse
+ 1 index 1 index ge { exch pop } { pop } ifelse <
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000001010101010101010101010101
+0101010101010101010101010101010101010101010101020202020202020202
+0202020202020202020202020202020202030303030303030303030303030303
+0303030303030304040404040404040404040404040404040404050505050505
+0505050505050505050506060606060606060606060606060607070707070707
+0707070707070708080808080808080808080808090909090909090909090909
+0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c
+0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f10101010
+1010101010111111111111111112121212121212121313131313131313141414
+1414141414151515151515151616161616161616171717171717171818181818
+18181919191919191a1a1a1a1a1a1a1b1b1b1b1b1b1c1c1c1c1c1c1c1d1d1d1d
+1d1d1e1e1e1e1e1e1f1f1f1f1f1f202020202020212121212121222222222223
+2323232323242424242425252525252526262626262727272727282828282829
+292929292a2a2a2a2a2b2b2b2b2b2c2c2c2c2c2d2d2d2d2d2e2e2e2e2e2f2f2f
+2f2f303030303131313131323232323333333333343434343535353535363636
+36373737373838383839393939393a3a3a3a3b3b3b3b3c3c3c3c3d3d3d3d3e3e
+3e3e3f3f3f3f4040404041414141424242424343434444444445454545464646
+4647474748484848494949494a4a4a4b4b4b4b4c4c4c4d4d4d4d4e4e4e4f4f4f
+4f50505051515151525252535353535454545555555656565657575758585859
+59595a5a5a5a5b5b5b5c5c5c5d5d5d5e5e5e5f5f5f6060606061616162626263
+63636464646565656666666767676868686969696a6a6a6b6b6b6c6c6d6d6d6e
+6e6e6f6f6f707070717171727273737374747475757576767677777878787979
+797a7a7b7b7b7c7c7c7d7d7e7e7e7f7f7f808081818182828283838484848585
+86868687878888888989898a8a8b8b8b8c8c8d8d8d8e8e8f8f90909091919292
+9293939494949595969697979798989999999a9a9b9b9c9c9c9d9d9e9e9f9f9f
+a0a0a1a1a2a2a3a3a3a4a4a5a5a6a6a6a7a7a8a8a9a9aaaaabababacacadadae
+aeafafb0b0b0b1b1b2b2b3b3b4b4b5b5b6b6b6b7b7b8b8b9b9bababbbbbcbcbd
+bdbebebebfbfc0c0c1c1c2c2c3c3c4c4c5c5c6c6c7c7c8c8c9c9cacacbcbcccc
+cdcdcececfcfd0d0d1d1d2d2d3d3d4d4d5d5d6d6d7d7d8d8d9d9dadadbdcdcdd
+dddededfdfe0e0e1e1e2e2e3e3e4e4e5e6e6e7e7e8e8e9e9eaeaebebecededee
+eeefeff0f0f1f1f2f3f3f4f4f5f5f6f6f7f8f8f9f9fafafbfcfcfdfdfefeffff
+> dup length 1 sub 3 -1 roll mul dup dup floor cvi exch ceiling
+ cvi 3 index exch get 4 -1 roll 3 -1 roll get
+ dup 3 1 roll sub 3 -1 roll dup floor cvi sub mul add 255 div } bind
+
+{ 1.0 0.0 3 -1 roll 1 index 1 index le { exch pop} { pop } ifelse
+ 1 index 1 index ge { exch pop } { pop } ifelse <
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000001010101010101010101010101
+0101010101010101010101010101010101010101010101020202020202020202
+0202020202020202020202020202020202030303030303030303030303030303
+0303030303030304040404040404040404040404040404040404050505050505
+0505050505050505050506060606060606060606060606060607070707070707
+0707070707070708080808080808080808080808090909090909090909090909
+0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c
+0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f10101010
+1010101010111111111111111112121212121212121313131313131313141414
+1414141414151515151515151616161616161616171717171717171818181818
+18181919191919191a1a1a1a1a1a1a1b1b1b1b1b1b1c1c1c1c1c1c1c1d1d1d1d
+1d1d1e1e1e1e1e1e1f1f1f1f1f1f202020202020212121212121222222222223
+2323232323242424242425252525252526262626262727272727282828282829
+292929292a2a2a2a2a2b2b2b2b2b2c2c2c2c2c2d2d2d2d2d2e2e2e2e2e2f2f2f
+2f2f303030303131313131323232323333333333343434343535353535363636
+36373737373838383839393939393a3a3a3a3b3b3b3b3c3c3c3c3d3d3d3d3e3e
+3e3e3f3f3f3f4040404041414141424242424343434444444445454545464646
+4647474748484848494949494a4a4a4b4b4b4b4c4c4c4d4d4d4d4e4e4e4f4f4f
+4f50505051515151525252535353535454545555555656565657575758585859
+59595a5a5a5a5b5b5b5c5c5c5d5d5d5e5e5e5f5f5f6060606061616162626263
+63636464646565656666666767676868686969696a6a6a6b6b6b6c6c6d6d6d6e
+6e6e6f6f6f707070717171727273737374747475757576767677777878787979
+797a7a7b7b7b7c7c7c7d7d7e7e7e7f7f7f808081818182828283838484848585
+86868687878888888989898a8a8b8b8b8c8c8d8d8d8e8e8f8f90909091919292
+9293939494949595969697979798989999999a9a9b9b9c9c9c9d9d9e9e9f9f9f
+a0a0a1a1a2a2a3a3a3a4a4a5a5a6a6a6a7a7a8a8a9a9aaaaabababacacadadae
+aeafafb0b0b0b1b1b2b2b3b3b4b4b5b5b6b6b6b7b7b8b8b9b9bababbbbbcbcbd
+bdbebebebfbfc0c0c1c1c2c2c3c3c4c4c5c5c6c6c7c7c8c8c9c9cacacbcbcccc
+cdcdcececfcfd0d0d1d1d2d2d3d3d4d4d5d5d6d6d7d7d8d8d9d9dadadbdcdcdd
+dddededfdfe0e0e1e1e2e2e3e3e4e4e5e6e6e7e7e8e8e9e9eaeaebebecededee
+eeefeff0f0f1f1f2f3f3f4f4f5f5f6f6f7f8f8f9f9fafafbfcfcfdfdfefeffff
+> dup length 1 sub 3 -1 roll mul dup dup floor cvi exch ceiling
+ cvi 3 index exch get 4 -1 roll 3 -1 roll get
+ dup 3 1 roll sub 3 -1 roll dup floor cvi sub mul add 255 div } bind
+
+{ 1.0 0.0 3 -1 roll 1 index 1 index le { exch pop} { pop } ifelse
+ 1 index 1 index ge { exch pop } { pop } ifelse <
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000001010101010101010101010101
+0101010101010101010101010101010101010101010101020202020202020202
+0202020202020202020202020202020202030303030303030303030303030303
+0303030303030304040404040404040404040404040404040404050505050505
+0505050505050505050506060606060606060606060606060607070707070707
+0707070707070708080808080808080808080808090909090909090909090909
+0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c
+0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f10101010
+1010101010111111111111111112121212121212121313131313131313141414
+1414141414151515151515151616161616161616171717171717171818181818
+18181919191919191a1a1a1a1a1a1a1b1b1b1b1b1b1c1c1c1c1c1c1c1d1d1d1d
+1d1d1e1e1e1e1e1e1f1f1f1f1f1f202020202020212121212121222222222223
+2323232323242424242425252525252526262626262727272727282828282829
+292929292a2a2a2a2a2b2b2b2b2b2c2c2c2c2c2d2d2d2d2d2e2e2e2e2e2f2f2f
+2f2f303030303131313131323232323333333333343434343535353535363636
+36373737373838383839393939393a3a3a3a3b3b3b3b3c3c3c3c3d3d3d3d3e3e
+3e3e3f3f3f3f4040404041414141424242424343434444444445454545464646
+4647474748484848494949494a4a4a4b4b4b4b4c4c4c4d4d4d4d4e4e4e4f4f4f
+4f50505051515151525252535353535454545555555656565657575758585859
+59595a5a5a5a5b5b5b5c5c5c5d5d5d5e5e5e5f5f5f6060606061616162626263
+63636464646565656666666767676868686969696a6a6a6b6b6b6c6c6d6d6d6e
+6e6e6f6f6f707070717171727273737374747475757576767677777878787979
+797a7a7b7b7b7c7c7c7d7d7e7e7e7f7f7f808081818182828283838484848585
+86868687878888888989898a8a8b8b8b8c8c8d8d8d8e8e8f8f90909091919292
+9293939494949595969697979798989999999a9a9b9b9c9c9c9d9d9e9e9f9f9f
+a0a0a1a1a2a2a3a3a3a4a4a5a5a6a6a6a7a7a8a8a9a9aaaaabababacacadadae
+aeafafb0b0b0b1b1b2b2b3b3b4b4b5b5b6b6b6b7b7b8b8b9b9bababbbbbcbcbd
+bdbebebebfbfc0c0c1c1c2c2c3c3c4c4c5c5c6c6c7c7c8c8c9c9cacacbcbcccc
+cdcdcececfcfd0d0d1d1d2d2d3d3d4d4d5d5d6d6d7d7d8d8d9d9dadadbdcdcdd
+dddededfdfe0e0e1e1e2e2e3e3e4e4e5e6e6e7e7e8e8e9e9eaeaebebecededee
+eeefeff0f0f1f1f2f3f3f4f4f5f5f6f6f7f8f8f9f9fafafbfcfcfdfdfefeffff
+> dup length 1 sub 3 -1 roll mul dup dup floor cvi exch ceiling
+ cvi 3 index exch get 4 -1 roll 3 -1 roll get
+ dup 3 1 roll sub 3 -1 roll dup floor cvi sub mul add 255 div } bind
+] def
+/MatrixABC [ 0.4124 0.2126 0.0193 0.3576 0.7151 0.1192 0.1805 0.0722 0.9508 ] def
+/RangeLMN [ 0.0 0.9505 0.0 1.0000 0.0 1.0891 ] def
+end ] /Cs1 exch/ColorSpace dr pop
+%%EndPageSetup
+0.60000002 i
+/Cs1 SC
+0.011764706 0.27843139 0.32156864 sc
+q
+873.18262 75.453911 m
+873.18262 91.815651 881.76343 100.33044 897.57898 100.33044 c
+926.68634 100.33044 l
+944.35266 100.33044 958.14923 86.973915 958.14923 69.77739 c
+958.14923 60.427826 954.27948 52.747826 947.88593 47.906086 c
+956.63501 34.048695 l
+958.99048 30.375652 960 26.368696 960 22.194782 c
+960 9.8400002 950.24146 0.15652174 937.95917 0.15652174 c
+930.38788 0.15652174 922.98486 3.9965217 918.77856 11.008696 c
+916.42303 15.182609 l
+913.56281 6.3339128 905.65503 0.15652174 895.55994 0.15652174 c
+883.27765 0.15652174 873.18262 10.507826 873.18262 23.029566 c
+873.18262 75.453911 l
+h
+866.50433 19.351475 m
+866.50433 8.5767269 857.87769 -0.0093996152 847.42615 0.15895581 c
+812.58765 0.15895581 l
+796.66144 0.15895581 788.03479 8.5767269 788.03479 25.07556 c
+788.03479 75.413834 l
+788.03479 91.744308 796.66144 100.33044 812.58765 100.33044 c
+847.42615 100.33044 l
+857.87769 100.33044 866.50433 91.744308 866.50433 80.969559 c
+866.50433 71.204948 860.53204 64.134018 851.90533 62.450462 c
+855.8869 59.925133 858.04358 55.716248 858.04358 50.160519 c
+858.04358 44.60479 855.72101 40.395905 851.90533 37.870571 c
+860.36615 36.187016 866.50433 28.947733 866.50433 19.351475 c
+h
+760.98785 22.695652 m
+760.98785 10.34087 750.63654 0.15652174 736.77911 0.15652174 c
+723.75653 0.15652174 713.23828 10.34087 713.23828 22.695652 c
+713.23828 57.255653 l
+702.05219 57.923477 692.86957 67.106087 692.86957 78.793045 c
+692.86957 90.980873 702.55304 100.33044 714.40698 100.33044 c
+759.81915 100.33044 l
+771.67303 100.33044 781.35651 90.813911 781.35651 78.793045 c
+781.35651 67.106087 772.17389 57.756523 760.98785 57.255653 c
+760.98785 22.695652 l
+h
+604.38263 75.453911 m
+604.38263 91.815651 613.13165 100.33044 628.77899 100.33044 c
+657.88635 100.33044 l
+675.55267 100.33044 689.34924 86.973915 689.34924 69.77739 c
+689.34924 60.427826 685.47949 52.747826 679.08594 47.906086 c
+687.83496 34.048695 l
+690.19049 30.375652 691.20001 26.368696 691.20001 22.194782 c
+691.20001 9.8400002 681.44147 0.15652174 669.15918 0.15652174 c
+661.58789 0.15652174 654.18481 3.9965217 649.97858 11.008696 c
+647.62305 15.182609 l
+644.76282 6.3339128 636.85498 0.15652174 626.75995 0.15652174 c
+614.47766 0.15652174 604.38263 10.507826 604.38263 23.029566 c
+604.38263 75.453911 l
+h
+549.15283 19.240427 m
+543.45691 7.4650159 535.41553 1.826087 525.69885 1.826087 c
+508.1084 1.826087 495.37622 17.91362 503.25006 35.991364 c
+523.85608 83.756409 l
+529.04944 95.531815 536.5882 102 549.32037 102 c
+562.22009 102 569.75885 95.531815 574.78473 83.756409 c
+595.39069 35.991364 l
+603.09698 17.91362 590.53235 1.826087 572.77435 1.826087 c
+562.8902 1.826087 554.84882 7.4650159 549.15283 19.240427 c
+h
+490.47977 22.695652 m
+490.47977 10.34087 479.94162 0.15652174 466.39258 0.15652174 c
+453.34534 0.15652174 442.80719 10.34087 442.80719 22.695652 c
+442.80719 57.255653 l
+431.59998 57.923477 422.39999 67.106087 422.39999 78.793045 c
+422.39999 90.980873 432.10178 100.33044 443.97812 100.33044 c
+489.30884 100.33044 l
+501.18518 100.33044 510.88696 90.813911 510.88696 78.793045 c
+510.88696 67.106087 501.68698 57.756523 490.47977 57.255653 c
+490.47977 22.695652 l
+h
+422.39999 32.65263 m
+422.39999 12.719451 407.00793 0.15652174 381.07565 0.15652174 c
+354.64145 0.15652174 342.26086 9.2018309 342.26086 23.942333 c
+342.26086 34.160183 350.12421 40.692905 361.33365 40.692905 c
+361.50095 40.692905 l
+355.47797 46.220596 l
+347.94925 53.088329 342.76279 59.956062 342.76279 70.006409 c
+342.76279 89.604576 357.15103 102 381.74487 102 c
+406.84064 102 418.7193 93.1222 418.7193 78.214188 c
+418.7193 69.336388 412.69632 63.306179 403.66183 61.966133 c
+409.85211 56.438442 l
+417.38086 49.738216 422.39999 42.702976 422.39999 32.65263 c
+h
+337.25217 24.254622 m
+337.25217 11.961548 326.97266 1.6619463 314.33389 1.8280689 c
+307.25616 1.8280689 300.00995 5.1505208 295.62851 11.46318 c
+290.91003 18.108084 l
+288.71933 8.4729729 280.29349 1.8280689 269.50839 1.8280689 c
+257.03815 1.8280689 247.09566 11.795425 247.09566 24.088497 c
+247.09566 79.739571 l
+247.09566 92.032646 256.86963 102 269.50839 102 c
+280.46201 102 289.05637 94.856728 291.07855 85.055496 c
+296.30258 92.364891 l
+300.68402 98.345306 307.76172 101.83388 314.83942 101.83388 c
+326.97266 101.83388 337.25217 92.364891 337.25217 80.071815 c
+337.25217 75.42038 335.90405 70.768951 333.03925 66.948128 c
+322.25418 52.163219 l
+333.03925 37.378307 l
+335.90405 33.391365 337.25217 28.906054 337.25217 24.254622 c
+h
+238.74783 29.357328 m
+238.74783 13.269795 225.30344 1.826087 203.72601 1.826087 c
+174.84546 1.826087 153.60001 23.220846 153.60001 51.913044 c
+153.60001 80.60524 174.84546 102 203.72601 102 c
+225.30344 102 238.74783 90.55629 238.74783 74.468758 c
+238.74783 63.688454 233.43646 56.391018 222.81374 51.913044 c
+233.43646 47.43507 238.74783 39.971783 238.74783 29.357328 c
+h
+121.12685 102 m
+134.62244 102 145.41891 91.017479 145.25023 78.038132 c
+145.25023 25.787952 l
+145.25023 12.808609 134.62244 1.826087 120.95815 1.826087 c
+107.63126 1.826087 96.834785 12.642207 96.834785 25.787952 c
+96.834785 78.038132 l
+96.834785 91.017479 107.63126 102 121.12685 102 c
+h
+90.156525 24.254622 m
+90.156525 11.961548 79.896172 1.6619463 67.112785 1.8280689 c
+60.048279 1.8280689 52.815575 5.1505208 48.44231 11.46318 c
+43.732639 18.108084 l
+41.546009 8.4729729 33.135887 1.8280689 22.370928 1.8280689 c
+9.9239454 1.8280689 0 11.795425 0 24.088497 c
+0 79.739571 l
+0 92.032646 9.755743 102 22.370928 102 c
+33.304089 102 41.882416 94.856728 43.900845 85.055496 c
+49.283321 92.364891 l
+53.656586 98.345306 60.721088 101.83388 67.785591 101.83388 c
+79.896172 101.83388 90.156525 92.364891 90.156525 80.071815 c
+90.156525 75.42038 88.810905 70.768951 85.951462 66.948128 c
+75.186501 52.163219 l
+85.951462 37.378307 l
+88.810905 33.391365 90.156525 28.906054 90.156525 24.254622 c
+h
+W
+0 0 960 102 rc
+-15 117 m
+975 117 l
+975 -14.843478 l
+-15 -14.843478 l
+h
+f
+ep
+end
+%%Trailer
+%%EOF
diff --git a/src/images/kickstarter-logo.png b/src/images/kickstarter-logo.png
new file mode 100644
index 0000000..c2734da
Binary files /dev/null and b/src/images/kickstarter-logo.png differ
diff --git a/src/pages/Homepage/index.css b/src/pages/Homepage/index.css
index 987b6a9..51e18b3 100644
--- a/src/pages/Homepage/index.css
+++ b/src/pages/Homepage/index.css
@@ -47,3 +47,9 @@
text-decoration-line: none;
text-decoration-color: black;
}
+
+
+.kickstarter-logo {
+ /* width: 300px; */
+ height: 5vh;
+}
\ No newline at end of file
diff --git a/src/pages/Homepage/index.js b/src/pages/Homepage/index.js
index 761a080..f111e96 100644
--- a/src/pages/Homepage/index.js
+++ b/src/pages/Homepage/index.js
@@ -8,7 +8,8 @@ import ModalExample from "../../components/PopUpSignUp.js";
import MainJumbotron from "../../components/Jumbotron";
import InventionProcessDeck from "../../components/Decks";
import ClientStories from "../../components/clientStories";
-
+import kickstarterLogo from "../../images/kickstarter-logo.png";
+import haizolLogo from "../../images/haizol-logo.png";
// /Users/omar/Desktop/innovationDrive/innovation-drive/src/components/Form.js
export default class Homepage extends Component {
@@ -34,10 +35,10 @@ export default class Homepage extends Component {
-
-
+
+
-
+ {/*
@@ -48,6 +49,24 @@ export default class Homepage extends Component {
+ */}
+
+
+ {/* ADD LOGOS HERE */}
+
+
+
+
+
+
);