diff --git a/ui (gen1)/TODO.otl b/ui (gen1)/TODO.otl new file mode 100755 index 00000000..dfe60349 --- /dev/null +++ b/ui (gen1)/TODO.otl @@ -0,0 +1,573 @@ +Priority work + [_] 67% Preview II + [_] BUG: moving the last image from a ribbon up will make the screen jump... + [_] do something sensible when no images are loaded... + | in the simplest case, just write something in the middle of + | the background... + | + | this might include a set of instructions... + [_] 46% native client + [_] 19% Generic + [X] make cache generator accept command-line args... + | very basic form... + [_] 0% import UI + | (a-la IrfanView fast browser) + [_] directory + [_] JSON + [_] CouchDB URL + | low priority at this point... + [_] 0% export UI + [_] JSON + [_] directory + [_] 33% export targets + [X] whole tree + [_] this ribbon and above + [_] this ribbon/selection + [_] default settings in platform-specific JSON file + | this file should be auto-loaded on first run -- when no + | other settings are present... + | + | should be something like: + | loadDefaultSettings() + | + | that will load: + | cef-defaults.json - for CEF + | phonegap-defaults.json - for, you guessed it... + | ... + [_] make platform detection an issue for the abstraction layer + | as it is now the case with dumbJSONFile(...) + [_] 50% Windows (CEF / CEFPython) + [_] package a portable exe + [_] 50% basic wrapper + [X] JSON reader/writer + [_] directory lister + [X] basic test + [_] 50% Android (PhoneGap) + [_] 50% package as W3C widget to be compatible with PhoneGap builder... + [X] make the basic test package... + | https://github.com/flynx/ImageGrid-Viewer + [_] automate the build and push process (sub-git?) + [_] 0% basic wrapper + [_] JSON reader/writer + [_] directory lister + [X] basic test + [X] disable transitions... + [_] 0% bugs + [_] taps register as two taps + | possibly a tap and a click... + [_] 66% Standalone utils + [X] generate cache + | resize images and put them into .ImageGrid.cache/px directory + | + | should rebuild JSON + [X] generate JSON + | build JSON data from a directory... + [_] generate dir tree + | use a json file to generate a fav dir tree + [_] make the system more tolerant to missing or wrong fields in json data... + [_] make loading of different resolution images smooth... + | can be done in several ways: + | - cache images before loading... + | - two layers... + | - always keep the lowest res image loaded... + [_] BUG: click does not update the image counter... + [_] 0% split functionality into modules... + [_] core + [_] extras + [X] BUG: images.json data behaves sometimes loses data... + | possibly because some fields (ctime, preview, etc) are missing... + [X] load sorted images from JSON data + | curently the sort is as in file... + [X] fix image ordering... + [X] add basic image info display... + [X] 100% dynamic loading of images + [X] 100% stream on navigate + | parameters that affect loading: + | - current view size -> image size must be closest + | above this + | - viewer width in images -> number of widths (2-3) + | distance is used to trigger + | loading or unloading of images + | depending on direction + | NOTE: this is done for each + | image size in use. + | + | NOTE: here the trigger must be proximity to the view as we + | can reach an image not just by navigating close but + | also by scrolling/dragging to it (without changing the + | current image)... + [X] store structure separately from ui (mirror context) + | an alternative would be to store the whole thing (sans images) + | in DOM, but that ma get very big. + | + | storing the structure will enable us to have partial structures + | thus updating the structure of a very big set without the user + | noticing. + [X] 100% sync context (handle edit events) + [X] identify action position + | use id... + [X] update ui structure (handle navigate/move events) + [X] sizes on zoom + | still needs work... + [X] make shift up/down direction-aware... + | i.e. if we are going through images in a direction select the + | next image in that direction when shifting... + [X] 100% load state + [X] load mechanics + [X] auto-load last state on startup + [X] manual (console) + | loadJSON(loadJSONFile(...)) + [X] 100% load folder + [X] drag'n'drop + [X] 100% save state + [X] minimal: Local Storage (manual) + | works across all targets (CEF, PhoneGap, browser) + [X] manual local JSON (file) + [X] 100% autosave + [X] on edit + [X] on navigate + | only save position to save time... + [X] on timer + [X] on unload + [X] manual incremental save + [X] manual named save + [X] versions/history + [X] 100% UI + [X] 100% disable opacity for current ribbon + [X] 1.0 opacity for current ribbon mode + | automatically turned on for magnifications over 2 images + | per screen.... + [X] current image indicator + | this can be: + | - rectangle (not border) + | - underline + | - corner icon + [X] 100% settings/help screen + [X] keyboard config/help + [X] auto-generated settings interface + [X] "hide other ribbons" mode + [X] fix single image mode + | need to center the image correctly... + [X] 100% add screen buttons for all actions... + [X] navigation + [X] actions + [X] zooming + [X] 100% zoom presets + [X] single + [X] three + [X] wide + | toggle... + [X] 100% control single-image mode animations + [X] scroll + [X] switch (no transition) + [X] 100% layout + [X] 100% tablet + [X] stretch to full screen + | NOTE: viewer 0% sizes may break things... + [X] make buttons semi-transparent and same color as bg in all modes + | just like single image mode... + [X] make bg color switching in all modes + | black, white, gray + [X] 100% PC + [X] stretch to full screen + [X] make view correctly resizable + | appears to work correctly but need to click an image onResize... + | + | XXX find a way around always clicking things... + [X] hide buttons for keyboard actions + [X] web + | is this is the same as the above two? (with auto-select) + [X] add screen-width images next/prev navigation... + [X] 100% debug mode + [X] toggle cross-hair + [X] 100% sorted images in ribbons + [X] 100% stage I: position the promoted/demoted image correctly + | and correct positioning on promote/demote + | + | input: + | [01][02][03][04][05][06][07][08][09][10][11] ... [19][20] + | + | single ribbon, nothing special here. + | + | + | general sort: + | [05] [10][11][12] [15] [19][20] + | [01] [04] [06][07][08] [13][14] [18] + | [02][03] [09] [16][17] + | + | each strip is positioned above or below the place it was + | shifted from. + | if there is not enough space use weights to balance the + | thing. + | + | + | selected [08]: + | [05] [10][11][12] [15] [19][20] + | [01] [04] [06][07][[08]] [13][14] [18] + | [02][03] [09] [16][17] + | + | above and below images are centered around the current + | image as axis, the rule is that the strips left are coming + | from the left of the axis and likewise for the right side. + | + [X] 100% stage II: scroll ribbons correctly + | this is simple: + | - center the right edge of image returned + | by getImageBefore in all ribbons other than current... + | - center current-image in current ribbon + | - vertically center the current ribbon (negative margin?) + [X] prototype and basic API + [X] 100% migrate main code to the new system + [X] basic navigation + [X] basic actions + [X] zooming + [X] position other ribbons... + | only prev/next for now... + [X] 100% correct zooming and modes + [X] zooming in ribbon view + [X] 100% zoom presets for ribbon view + | other possible presets: + | - five + | - all + | - group + | - day/month + | - shoot + | - tag + | ... + [X] three + [X] one (with zooming) + [X] single image mode with zooming + | ribbons are hidden + [X] 100% fix layout and animations + [X] zooming + [X] navigation + [X] 100% actions + [X] bug: shifting up to new ribbon pushes the current row down... + | before starting on a fix, need to cleanup the code from old hacks and workarounds... + [_] 39% Preview II (optional features) + [_] undo last action (action log) + [_] mark positions and jump between marks (a-la vim's "m"/"'" commands) + [_] 14% make things modular and reusable (independent widget) + [X] make the keyboard handler local to selector (mode-aware) + [_] prefix an ID to all selectors to make their actions "local" + [_] avoid use of id html attr + [_] avoid use of globals + | ImageGrid.XXX is a primery target... + [_] split as much of the work into events as possible + | one example is the stuff that's done on $('.current.image').click(), + | thinks like aligning ribbons, centering, etc. + [_] make sets of actions for combination via $.update(...) + | make things modular... + [_] organize things into "features" + | this will enable reuse as simple as combining only the desired + | features into a final entity... + [_] handle edit events to update the internal state state -- sync with DOM (???) + | this is needed only for keeping the state in order... + | + | NOTE: this is not that important as buildJSON(...) + | already does the job correctly... + [_] try a coffee-script version + [_] 0% PhoneGap + Android Issues: + [_] scrolling in overlays does not work + [_] half the keyboard is not working... + [_] screen buttons are very laggy + | while swipe works super fast... + [_] .dblclick(...) does not work... + [_] .dragable(...) does not work... + [_] slideshow... + | this is needed to disable navigation keys in setup-mode, for example... + [X] 100% serialization/deserialization + [X] JSON loader/unloader + [X] file reader/writer + [X] flip ribbons relative to current -- reverse order + [_] fade transition in single image mode... + [_] "show all promoted/demoted images" mode + | display images below or above but in a more transparent + | fashion... + | + | XXX should they be skipped on navigation? + [_] 80% drag/move action... + [X] basic infrastructure + [X] action: center current image + [X] while zoomed more than the screen + [X] while zoomed out (ribbon view) + [_] 0% cleanup... + [_] disable click events while dragging + [_] differentiate with gestures + | might be nice to add a Ps-like "space-dragging" + | feature to differentiate nav gestures and + | dragging... + | ...this may not work for tablets + | + | for tablets might be good to add a small timeout to + | both gestures and dragging, small enough for things + | to feel natural... + | + | another way is to start dragging anyway but if the + | eventual action resembles a gesture then exec that. + | ...this will need careful setup of timeouts and + | dynamic disabling/enabling of both drag and gestures + | e.g. of large zooms dragging takes priority. + [_] 50% return to current image / home (after drag) + [_] button + [X] keyboard + [X] double tap/click to zoom (a-la iPad) + | ribbon <-> single image mode + | + | XXX does not work in android... + [_] pinch to zoom + [X] BUG: rendering error when current ribbon images opacity is 1... + | This happens when: + | - opcity of .current.ribbon .image is 1 + | - there is atleast a ribbon above + | - the view is zoomed-out a bit ~70% + | + | the view is partially re-rendered when navigating images... + | + | since this is a browser render error, think of a way to work + | around this. + | + | WORKAROUND: set the opacity to 0.9999 instead of 1 forces the + | browser to re-render the whole set correctly. need to find a + | better way... + [X] 100% add sort/re-sort capability... + [X] abstract out image id + [X] replace id (use something else like filename) + [X] re-arrange ribbons (reverse) + [X] in-place sort images in ribbons + [_] 50% option to disable processor intensive features + [X] global transitions + [_] global opacity -- do a layout without opacity + [X] 100% refactoring (low priority) + [X] cleanup legacy workarounds + [X] ui.js, gallery-prototype.js either merge or revise split logic + [_] make scrolling of other ribbons proportional to the gap... + [_] 3% Preview III + [_] use Caps Lock for edit mode... + [_] infinite ribbons - dynamic structure construction and partial state + | one way to do this is by: + | - limiting the number of images per field + | - adding new images to new fields to the left and right of current + [_] 0% state + [_] 0% save state + [_] named manual + [_] CouchDB + [_] 0% export state + [_] JSON file + [_] directory tree + [_] XMP + [_] 0% load state + [_] named manual + [_] 25% directory browser + [_] browser mode/ui + [_] 50% import directory + [_] build/rebuild cache + [X] create JSON from cache + [_] collection management + [_] archive management + [_] 0% native client + [_] android + [_] restrict layout to horizontal + | leave doing a different vertical layout for later versions... + [_] windows + [_] MacOS (low priority) + [_] iOS (low priority) + [_] 0% unified build system + [_] 0% bugs: + [_] adding a new ribbon above the current is still jumpy... + [_] 0% Preview III (optional features) + [_] 0% Pre-Alpha + [_] 0% finalize UI logic + [_] unsorted images + [_] 0% Alpha + [_] 0% Beta + [_] 0% 1.0 + + +[_] 38% Main workflow + [_] 33% image viewing + [X] viewer + [_] select source + [_] slideshow + [X] 100% image sorting + [X] ribbon navigation + [X] shift image between ribbons + [X] 100% basic large scale operations + [X] sort all images + [X] reverse all images + [X] reverse ribbons + [_] 0% metadata + [_] tag filtering + [_] tag editing + [_] EXIF/IPTC + [_] 20% image/export export + [X] JSON + [_] XMP metadata + [_] fav dirs + [_] file list + [_] image set + + + +Goals: + main ribbon always consistent + fast sorting via several simple passes + binary + | items are split into two ribbons. + | + | this can be done either by mandatorily shifting either up or + | down or by restricting shifting to just one direction. + | + | this is a bit too restrictive. + | + | essentially this is a combination in the ternary approach + | below as we can still shift images between levels. + ternary + | current ribbon and items are either sifted up, shifted down + | relative to it or left on, unshifted. + | + | main ribbon consistency is not always obvious, especially on + | partially sorted sets. e.g. while sorting part of the set where + | should the unsorted part be? + | + | sorted section + | +-------------------+ + | + | oooooooooooooooooooooooooooooooo + | - oooooooooooooooooooooooooooo + | > oooooooooooooooooooooxxxxxxxxxxxxxxxxxxxxxxxxxxx... < + | + oooooooooooooooo + | oooo + | + | +----------------------------+ + | which level should this go to? + | + | in the illustration, the ribbon marked by ">" and "<" is where + | the sorting started. + | + | there is also a question of how do we define the border between + | sorted and unsorted zones and when? + | ...after the sort is done, and when is that? + | + | possible ways to go around this: + | before sorting select the working batch + | - adds an extra step + | - restricts later sorting + | restrict promotion over the main ribbon + | + sorting can be refined later in the same mode + | - prevents the user to select the better images on first pass + | split the sorted and unsorted batches and never mix them + | - restricts later sorting + | main ribbon always shows all the better images (from better levels) + | o needs a way to move whole topologies up/down relative + | to the main ribbon... + | one way to do this is select and shift multiple images + | will shift the whole pyramid (with all the "worse" images in between) + | - introduces modes: sorting / viewing + | - adds a separate stage -- move the topology to a correct + | main ribbon position + | + | Q: is this system applicable to sorting search results? + | A: likely yes, but the farther one gets from the main ribbon + | the more the difference can get between adjacent images. + images are always sortable + all levels always browsable + make all the steps except the actual sorting implicit + | i.e. no jumping through hoops for the human... + use the same mechanism as used for sorting, for image selection + | this can be used for tagging, exhibitions, ...etc. + context + | a context consists of two things: + | - image selection (might be a product of another context, search or selection) + | - a way the levels are interpreted within this context + | + | default contexts: + | - full view rating context + | this incorporates ALL the archive and the levels are interpreted as ratings. + | - selection rating context + | same as full view but only part of the archive is rated + | XXX this will need to be merged correctly back into the archive... + | - selection context + | this simply takes one set of images as input and shows a subset as output. + | + | contexts are persistent, much like a catalogue. + | + | a context can be cloned and re-used. + | + | contexts can be used to mark: + | - shoots + | - subjects + | - exhibitions/shows + | - portfolios + | - ... + + +[[controls.otl]] + + + +[_] 38% features + [_] 55% views + [_] 60% ribbon-based view + [_] show all (very zoomed out view) + | might be good to not show any images here at all, just replace them with their average color + [X] show map + [X] fit to ribbon + [X] fit to image (square) + [_] ribbon with promoted/demoted images + | show semi-transparent images that were demoted/promoted from current ribbon + [_] 50% single image view + [_] image fit to screen + [X] image fit to square + | show parts of upper and lower ribbons + [X] image zooming + | fast zooming to stages: + | fit + | 100% + | 200% + | ... + [_] basic editing and manipulation + | image unchanged, data saved to json... + [_] crop + [_] rotate + + + +[_] 38% General ToDo + [_] 80% image sorting + [_] will affect: + [X] promote + [X] demote + [X] shift up + [X] shift down + [_] ribbon merging + [_] add promote/demote events (to attach structure editors)... + | enable extension and use as a generic widget... + [X] add real images... + [_] make all the code relative to the current selection (multiple instances on a page support) + [X] add ribbon relative scrolling... + | each ribbon is positioned relative to the current selected image + | below-left: closest image to the left of the current + | bolow-right: same as above but right... + | + | this will demote/promote the image directly up or down... + [_] make this into a jquery plugin... + [_] add dynamic loading and unloading for very large sets... + [X] gesture support... + [_] add basic actions: + [_] rotate left + [_] rotate right + [_] crop + ... + [_] add info: + [_] number of images in ribbon + [_] position in ribbon + + + +[_] % ISSUES and BUGS: + [_] jumping on focus up/down... + [_] demoting a first element (a ribbon is created) positions the field incorrectly (see demoteImage() for details)... + +. +| vim:set spell : diff --git a/ui/controls.otl b/ui (gen1)/controls.otl similarity index 100% rename from ui/controls.otl rename to ui (gen1)/controls.otl diff --git a/ui/fullscreen.html b/ui (gen1)/fullscreen.html similarity index 100% rename from ui/fullscreen.html rename to ui (gen1)/fullscreen.html diff --git a/ui/gallery-prototype.js b/ui (gen1)/gallery-prototype.js similarity index 100% rename from ui/gallery-prototype.js rename to ui (gen1)/gallery-prototype.js diff --git a/ui/gallery.css b/ui (gen1)/gallery.css similarity index 100% rename from ui/gallery.css rename to ui (gen1)/gallery.css diff --git a/ui/gallery.html b/ui (gen1)/gallery.html similarity index 100% rename from ui/gallery.html rename to ui (gen1)/gallery.html diff --git a/ui/gallery.js b/ui (gen1)/gallery.js similarity index 100% rename from ui/gallery.js rename to ui (gen1)/gallery.js diff --git a/ui (gen1)/images.js b/ui (gen1)/images.js new file mode 100755 index 00000000..9e0edd9e --- /dev/null +++ b/ui (gen1)/images.js @@ -0,0 +1,1330 @@ +var image_list = { + "position": "2540533da23b401485af2b14588f2e385c8ce0a5", + "ribbons": [ + { + "2540533da23b401485af2b14588f2e385c8ce0a5": { + "path": "./images/350px/DSC_3698.jpg", + "preview": { + "350px": "./images/350px/DSC_3698.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2540533da23b401485af2b14588f2e385c8ce0a5%20-%20DSC_3698.jpg" + }, + "id": "2540533da23b401485af2b14588f2e385c8ce0a5", + "ctime": 1339157555.8507047 + }, + "03162bb32ae0468507979d340ec0a45438b809aa": { + "path": "./images/350px/DSC_3755.jpg", + "preview": { + "350px": "./images/350px/DSC_3755.jpg", + "150px": "./images/350px/.ImageGridCache/150px/03162bb32ae0468507979d340ec0a45438b809aa%20-%20DSC_3755.jpg" + }, + "id": "03162bb32ae0468507979d340ec0a45438b809aa", + "ctime": 1339157555.3499846 + }, + "caf04703ac0a884df5de75bf1f12c7611132c0e9": { + "path": "./images/350px/DSC_3713.jpg", + "preview": { + "350px": "./images/350px/DSC_3713.jpg", + "150px": "./images/350px/.ImageGridCache/150px/caf04703ac0a884df5de75bf1f12c7611132c0e9%20-%20DSC_3713.jpg" + }, + "id": "caf04703ac0a884df5de75bf1f12c7611132c0e9", + "ctime": 1339157555.7004888 + }, + "dcb47754e398f86ddaa56dae399ab3e5cb8224d1": { + "path": "./images/350px/DSC_3511.jpg", + "preview": { + "350px": "./images/350px/DSC_3511.jpg", + "150px": "./images/350px/.ImageGridCache/150px/dcb47754e398f86ddaa56dae399ab3e5cb8224d1%20-%20DSC_3511.jpg" + }, + "id": "dcb47754e398f86ddaa56dae399ab3e5cb8224d1", + "ctime": 1339157557.533124 + }, + "d8aa1abff224e99fe5b9b7cb54750051c81469ad": { + "path": "./images/350px/DSC_3664.jpg", + "preview": { + "350px": "./images/350px/DSC_3664.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d8aa1abff224e99fe5b9b7cb54750051c81469ad%20-%20DSC_3664.jpg" + }, + "id": "d8aa1abff224e99fe5b9b7cb54750051c81469ad", + "ctime": 1339157556.0509927 + }, + "13d8d7c28571000105a72094610517e8412c813b": { + "path": "./images/350px/DSC_3611.jpg", + "preview": { + "350px": "./images/350px/DSC_3611.jpg", + "150px": "./images/350px/.ImageGridCache/150px/13d8d7c28571000105a72094610517e8412c813b%20-%20DSC_3611.jpg" + }, + "id": "13d8d7c28571000105a72094610517e8412c813b", + "ctime": 1339157556.5517128 + }, + "fc161f187548fb432d5f5ebfd0cd5e358a774db0": { + "path": "./images/350px/DSC_3516.jpg", + "preview": { + "350px": "./images/350px/DSC_3516.jpg", + "150px": "./images/350px/.ImageGridCache/150px/fc161f187548fb432d5f5ebfd0cd5e358a774db0%20-%20DSC_3516.jpg" + }, + "id": "fc161f187548fb432d5f5ebfd0cd5e358a774db0", + "ctime": 1339157557.4930663 + }, + "bd2a4d7da462256c6fb3a80131532b1e3a5d9b42": { + "path": "./images/350px/DSC_3555.jpg", + "preview": { + "350px": "./images/350px/DSC_3555.jpg", + "150px": "./images/350px/.ImageGridCache/150px/bd2a4d7da462256c6fb3a80131532b1e3a5d9b42%20-%20DSC_3555.jpg" + }, + "id": "bd2a4d7da462256c6fb3a80131532b1e3a5d9b42", + "ctime": 1339157557.1025047 + }, + "777f053cf3f6103a434914da32e7af7b757d1cc0": { + "path": "./images/350px/DSC_3812.jpg", + "preview": { + "350px": "./images/350px/DSC_3812.jpg", + "150px": "./images/350px/.ImageGridCache/150px/777f053cf3f6103a434914da32e7af7b757d1cc0%20-%20DSC_3812.jpg" + }, + "id": "777f053cf3f6103a434914da32e7af7b757d1cc0", + "ctime": 1339157555.0896103 + }, + "7801dd0ab5e839a437555db81a8cfdfb656905cf": { + "path": "./images/350px/DSC_3586.jpg", + "preview": { + "350px": "./images/350px/DSC_3586.jpg", + "150px": "./images/350px/.ImageGridCache/150px/7801dd0ab5e839a437555db81a8cfdfb656905cf%20-%20DSC_3586.jpg" + }, + "id": "7801dd0ab5e839a437555db81a8cfdfb656905cf", + "ctime": 1339157556.782044 + }, + "32fe39dbf722ad06966c047f8b53caff3020e271": { + "path": "./images/350px/DSC_3714.jpg", + "preview": { + "350px": "./images/350px/DSC_3714.jpg", + "150px": "./images/350px/.ImageGridCache/150px/32fe39dbf722ad06966c047f8b53caff3020e271%20-%20DSC_3714.jpg" + }, + "id": "32fe39dbf722ad06966c047f8b53caff3020e271", + "ctime": 1339157555.68046 + }, + "99ecaf0b098e4543056eefd59d39c582e47f9d6b": { + "path": "./images/350px/DSC_3693.jpg", + "preview": { + "350px": "./images/350px/DSC_3693.jpg", + "150px": "./images/350px/.ImageGridCache/150px/99ecaf0b098e4543056eefd59d39c582e47f9d6b%20-%20DSC_3693.jpg" + }, + "id": "99ecaf0b098e4543056eefd59d39c582e47f9d6b", + "ctime": 1339157555.9007766 + }, + "d5746ea5fa662a8ea939d3025542c822a765bc82": { + "path": "./images/350px/DSC_3705.jpg", + "preview": { + "350px": "./images/350px/DSC_3705.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d5746ea5fa662a8ea939d3025542c822a765bc82%20-%20DSC_3705.jpg" + }, + "id": "d5746ea5fa662a8ea939d3025542c822a765bc82", + "ctime": 1339157555.760575 + }, + "89f6d82d64e2f1451ade39101a63e79be3c21668": { + "path": "./images/350px/DSC_3537.jpg", + "preview": { + "350px": "./images/350px/DSC_3537.jpg", + "150px": "./images/350px/.ImageGridCache/150px/89f6d82d64e2f1451ade39101a63e79be3c21668%20-%20DSC_3537.jpg" + }, + "id": "89f6d82d64e2f1451ade39101a63e79be3c21668", + "ctime": 1339157557.2927783 + }, + "26172b8447d5b8f3038c5f60269131db4e11b104": { + "path": "./images/350px/DSC_3653.jpg", + "preview": { + "350px": "./images/350px/DSC_3653.jpg", + "150px": "./images/350px/.ImageGridCache/150px/26172b8447d5b8f3038c5f60269131db4e11b104%20-%20DSC_3653.jpg" + }, + "id": "26172b8447d5b8f3038c5f60269131db4e11b104", + "ctime": 1339157556.1511366 + }, + "a432d915e9282caa8814a5877137f489d73caf0c": { + "path": "./images/350px/DSC_3633.jpg", + "preview": { + "350px": "./images/350px/DSC_3633.jpg", + "150px": "./images/350px/.ImageGridCache/150px/a432d915e9282caa8814a5877137f489d73caf0c%20-%20DSC_3633.jpg" + }, + "id": "a432d915e9282caa8814a5877137f489d73caf0c", + "ctime": 1339157556.3213816 + }, + "0a7a3f7bbd3c7a0839c4adb67f96f8008397be04": { + "path": "./images/350px/DSC_3744.jpg", + "preview": { + "350px": "./images/350px/DSC_3744.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0a7a3f7bbd3c7a0839c4adb67f96f8008397be04%20-%20DSC_3744.jpg" + }, + "id": "0a7a3f7bbd3c7a0839c4adb67f96f8008397be04", + "ctime": 1339157555.4401143 + }, + "e5ed9c0002505b7a40878ebb95bab2202c20a1f4": { + "path": "./images/350px/DSC_3638.jpg", + "preview": { + "350px": "./images/350px/DSC_3638.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e5ed9c0002505b7a40878ebb95bab2202c20a1f4%20-%20DSC_3638.jpg" + }, + "id": "e5ed9c0002505b7a40878ebb95bab2202c20a1f4", + "ctime": 1339157556.281324 + }, + "ef96325e40a88ece2cec79ce2e12b0365e70c162": { + "path": "./images/350px/DSC_3570.jpg", + "preview": { + "350px": "./images/350px/DSC_3570.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ef96325e40a88ece2cec79ce2e12b0365e70c162%20-%20DSC_3570.jpg" + }, + "id": "ef96325e40a88ece2cec79ce2e12b0365e70c162", + "ctime": 1339157556.9422743 + }, + "b3b184296bea88a8fa72d5f4861973a8701dea01": { + "path": "./images/350px/DSC_3608.jpg", + "preview": { + "350px": "./images/350px/DSC_3608.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b3b184296bea88a8fa72d5f4861973a8701dea01%20-%20DSC_3608.jpg" + }, + "id": "b3b184296bea88a8fa72d5f4861973a8701dea01", + "ctime": 1339157556.5717416 + }, + "18a3f4bd958ce00ea810216752072e704c7b5795": { + "path": "./images/350px/DSC_3509.jpg", + "preview": { + "350px": "./images/350px/DSC_3509.jpg", + "150px": "./images/350px/.ImageGridCache/150px/18a3f4bd958ce00ea810216752072e704c7b5795%20-%20DSC_3509.jpg" + }, + "id": "18a3f4bd958ce00ea810216752072e704c7b5795", + "ctime": 1339157557.5431383 + }, + "b34ace0518a595880d12228d784656fd385a218e": { + "path": "./images/350px/DSC_3613.jpg", + "preview": { + "350px": "./images/350px/DSC_3613.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b34ace0518a595880d12228d784656fd385a218e%20-%20DSC_3613.jpg" + }, + "id": "b34ace0518a595880d12228d784656fd385a218e", + "ctime": 1339157556.5416982 + }, + "923e297a7df72bb9bd242008114e8a4ce557abdf": { + "path": "./images/350px/DSC_3677.jpg", + "preview": { + "350px": "./images/350px/DSC_3677.jpg", + "150px": "./images/350px/.ImageGridCache/150px/923e297a7df72bb9bd242008114e8a4ce557abdf%20-%20DSC_3677.jpg" + }, + "id": "923e297a7df72bb9bd242008114e8a4ce557abdf", + "ctime": 1339157555.960863 + }, + "b1a9dc4a268212e97d05791731aea6f91bef84de": { + "path": "./images/350px/DSC_3598.jpg", + "preview": { + "350px": "./images/350px/DSC_3598.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b1a9dc4a268212e97d05791731aea6f91bef84de%20-%20DSC_3598.jpg" + }, + "id": "b1a9dc4a268212e97d05791731aea6f91bef84de", + "ctime": 1339157556.6818998 + }, + "f2b763155e8c4c7b3a77af27abc8377ac66b0d9a": { + "path": "./images/350px/DSC_3686.jpg", + "preview": { + "350px": "./images/350px/DSC_3686.jpg", + "150px": "./images/350px/.ImageGridCache/150px/f2b763155e8c4c7b3a77af27abc8377ac66b0d9a%20-%20DSC_3686.jpg" + }, + "id": "f2b763155e8c4c7b3a77af27abc8377ac66b0d9a", + "ctime": 1339157555.9107912 + }, + "7d1885c2b1c6428ed66d5ba78f5bbab9d6dfca82": { + "path": "./images/350px/DSC_3605.jpg", + "preview": { + "350px": "./images/350px/DSC_3605.jpg", + "150px": "./images/350px/.ImageGridCache/150px/7d1885c2b1c6428ed66d5ba78f5bbab9d6dfca82%20-%20DSC_3605.jpg" + }, + "id": "7d1885c2b1c6428ed66d5ba78f5bbab9d6dfca82", + "ctime": 1339157556.6218135 + }, + "0efb3029557c7deaa4121bdeaff2506c32ef1662": { + "path": "./images/350px/DSC_3565.jpg", + "preview": { + "350px": "./images/350px/DSC_3565.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0efb3029557c7deaa4121bdeaff2506c32ef1662%20-%20DSC_3565.jpg" + }, + "id": "0efb3029557c7deaa4121bdeaff2506c32ef1662", + "ctime": 1339157557.0023606 + }, + "929da4b36039bcdd2c80d7903db47ffbcd568902": { + "path": "./images/350px/DSC_3712.jpg", + "preview": { + "350px": "./images/350px/DSC_3712.jpg", + "150px": "./images/350px/.ImageGridCache/150px/929da4b36039bcdd2c80d7903db47ffbcd568902%20-%20DSC_3712.jpg" + }, + "id": "929da4b36039bcdd2c80d7903db47ffbcd568902", + "ctime": 1339157555.710503 + }, + "8ee0ab33ace2d227d9077aa5dc4ac4b25bff5445": { + "path": "./images/350px/DSC_3781.jpg", + "preview": { + "350px": "./images/350px/DSC_3781.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8ee0ab33ace2d227d9077aa5dc4ac4b25bff5445%20-%20DSC_3781.jpg" + }, + "id": "8ee0ab33ace2d227d9077aa5dc4ac4b25bff5445", + "ctime": 1339157555.2498407 + }, + "de81dfd41412595d95e779e8b64d6e3a81c14cd1": { + "path": "./images/350px/DSC_3727.jpg", + "preview": { + "350px": "./images/350px/DSC_3727.jpg", + "150px": "./images/350px/.ImageGridCache/150px/de81dfd41412595d95e779e8b64d6e3a81c14cd1%20-%20DSC_3727.jpg" + }, + "id": "de81dfd41412595d95e779e8b64d6e3a81c14cd1", + "ctime": 1339157555.5903304 + }, + "b5b43cfb3c2de2f6637f52d7b5de0c0723967b8c": { + "path": "./images/350px/DSC_3737.jpg", + "preview": { + "350px": "./images/350px/DSC_3737.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b5b43cfb3c2de2f6637f52d7b5de0c0723967b8c%20-%20DSC_3737.jpg" + }, + "id": "b5b43cfb3c2de2f6637f52d7b5de0c0723967b8c", + "ctime": 1339157555.510215 + }, + "b8fe169b76d12dd960e5f81c6489b9b2a0f009bd": { + "path": "./images/350px/DSC_3599.jpg", + "preview": { + "350px": "./images/350px/DSC_3599.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b8fe169b76d12dd960e5f81c6489b9b2a0f009bd%20-%20DSC_3599.jpg" + }, + "id": "b8fe169b76d12dd960e5f81c6489b9b2a0f009bd", + "ctime": 1339157556.6718855 + }, + "8703e98633a09faa402a799194d9b93b7991e449": { + "path": "./images/350px/DSC_3666.jpg", + "preview": { + "350px": "./images/350px/DSC_3666.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8703e98633a09faa402a799194d9b93b7991e449%20-%20DSC_3666.jpg" + }, + "id": "8703e98633a09faa402a799194d9b93b7991e449", + "ctime": 1339157556.030964 + }, + "70bcbbd3b3b62c804ba5c69d3e788774d6167147": { + "path": "./images/350px/DSC_3575.jpg", + "preview": { + "350px": "./images/350px/DSC_3575.jpg", + "150px": "./images/350px/.ImageGridCache/150px/70bcbbd3b3b62c804ba5c69d3e788774d6167147%20-%20DSC_3575.jpg" + }, + "id": "70bcbbd3b3b62c804ba5c69d3e788774d6167147", + "ctime": 1339157556.862159 + }, + "f7421a5e3ff51c8302cda7cbecb7694aab94d98f": { + "path": "./images/350px/DSC_3726.jpg", + "preview": { + "350px": "./images/350px/DSC_3726.jpg", + "150px": "./images/350px/.ImageGridCache/150px/f7421a5e3ff51c8302cda7cbecb7694aab94d98f%20-%20DSC_3726.jpg" + }, + "id": "f7421a5e3ff51c8302cda7cbecb7694aab94d98f", + "ctime": 1339157555.6103592 + }, + "d28cb25a0d5729594b89740d6b61ae00556fe1fb": { + "path": "./images/350px/DSC_3508.jpg", + "preview": { + "350px": "./images/350px/DSC_3508.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d28cb25a0d5729594b89740d6b61ae00556fe1fb%20-%20DSC_3508.jpg" + }, + "id": "d28cb25a0d5729594b89740d6b61ae00556fe1fb", + "ctime": 1339157557.5531528 + }, + "c9669e076bee492ad499a83eaf71b173155991f2": { + "path": "./images/350px/DSC_3623.jpg", + "preview": { + "350px": "./images/350px/DSC_3623.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c9669e076bee492ad499a83eaf71b173155991f2%20-%20DSC_3623.jpg" + }, + "id": "c9669e076bee492ad499a83eaf71b173155991f2", + "ctime": 1339157556.4615831 + }, + "ae6e160c5c449181b78822babddb82bb5f62fde7": { + "path": "./images/350px/DSC_3793.jpg", + "preview": { + "350px": "./images/350px/DSC_3793.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ae6e160c5c449181b78822babddb82bb5f62fde7%20-%20DSC_3793.jpg" + }, + "id": "ae6e160c5c449181b78822babddb82bb5f62fde7", + "ctime": 1339157555.1897542 + }, + "5c494f9e019709e92ec2d392d8a55f1d2e416ca9": { + "path": "./images/350px/DSC_3501.jpg", + "preview": { + "350px": "./images/350px/DSC_3501.jpg", + "150px": "./images/350px/.ImageGridCache/150px/5c494f9e019709e92ec2d392d8a55f1d2e416ca9%20-%20DSC_3501.jpg" + }, + "id": "5c494f9e019709e92ec2d392d8a55f1d2e416ca9", + "ctime": 1339157557.6332679 + }, + "4e29e5f8dff699b38c3a281887b1bd4cebb57e04": { + "path": "./images/350px/DSC_3595.jpg", + "preview": { + "350px": "./images/350px/DSC_3595.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4e29e5f8dff699b38c3a281887b1bd4cebb57e04%20-%20DSC_3595.jpg" + }, + "id": "4e29e5f8dff699b38c3a281887b1bd4cebb57e04", + "ctime": 1339157556.7019286 + }, + "cb0a2e9713f45909d1f1f2516cb590e3f1acf534": { + "path": "./images/350px/DSC_3548.jpg", + "preview": { + "350px": "./images/350px/DSC_3548.jpg", + "150px": "./images/350px/.ImageGridCache/150px/cb0a2e9713f45909d1f1f2516cb590e3f1acf534%20-%20DSC_3548.jpg" + }, + "id": "cb0a2e9713f45909d1f1f2516cb590e3f1acf534", + "ctime": 1339157557.1726055 + }, + "ac6c5f039262643496583b2a5756793939199abf": { + "path": "./images/350px/DSC_3594.jpg", + "preview": { + "350px": "./images/350px/DSC_3594.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ac6c5f039262643496583b2a5756793939199abf%20-%20DSC_3594.jpg" + }, + "id": "ac6c5f039262643496583b2a5756793939199abf", + "ctime": 1339157556.7119431 + }, + "8fb694920ddc9e2682c7091ec09a855ed394980d": { + "path": "./images/350px/DSC_3641.jpg", + "preview": { + "350px": "./images/350px/DSC_3641.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8fb694920ddc9e2682c7091ec09a855ed394980d%20-%20DSC_3641.jpg" + }, + "id": "8fb694920ddc9e2682c7091ec09a855ed394980d", + "ctime": 1339157556.2512808 + }, + "af1fcb733024ffda0ae638bfc881ba83b868d2be": { + "path": "./images/350px/DSC_3682.jpg", + "preview": { + "350px": "./images/350px/DSC_3682.jpg", + "150px": "./images/350px/.ImageGridCache/150px/af1fcb733024ffda0ae638bfc881ba83b868d2be%20-%20DSC_3682.jpg" + }, + "id": "af1fcb733024ffda0ae638bfc881ba83b868d2be", + "ctime": 1339157555.9508488 + }, + "7c6863909e0727583d3125071afc94f158804bc0": { + "path": "./images/350px/DSC_3733.jpg", + "preview": { + "350px": "./images/350px/DSC_3733.jpg", + "150px": "./images/350px/.ImageGridCache/150px/7c6863909e0727583d3125071afc94f158804bc0%20-%20DSC_3733.jpg" + }, + "id": "7c6863909e0727583d3125071afc94f158804bc0", + "ctime": 1339157555.5502727 + }, + "8841793c1b83dd663e4c15c0f619cfd1fde582ff": { + "path": "./images/350px/DSC_3517.jpg", + "preview": { + "350px": "./images/350px/DSC_3517.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8841793c1b83dd663e4c15c0f619cfd1fde582ff%20-%20DSC_3517.jpg" + }, + "id": "8841793c1b83dd663e4c15c0f619cfd1fde582ff", + "ctime": 1339157557.4730375 + }, + "c0a4e57deeff4042d1bf3436f0dad231b05a8c17": { + "path": "./images/350px/DSC_3624.jpg", + "preview": { + "350px": "./images/350px/DSC_3624.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c0a4e57deeff4042d1bf3436f0dad231b05a8c17%20-%20DSC_3624.jpg" + }, + "id": "c0a4e57deeff4042d1bf3436f0dad231b05a8c17", + "ctime": 1339157556.4515686 + }, + "a116aa6f2b61497585704f0afcdd2cccdbe352ec": { + "path": "./images/350px/DSC_3553.jpg", + "preview": { + "350px": "./images/350px/DSC_3553.jpg", + "150px": "./images/350px/.ImageGridCache/150px/a116aa6f2b61497585704f0afcdd2cccdbe352ec%20-%20DSC_3553.jpg" + }, + "id": "a116aa6f2b61497585704f0afcdd2cccdbe352ec", + "ctime": 1339157557.1225336 + }, + "e3cae95b7238b56f6049e13deb8b2d32143e9f00": { + "path": "./images/350px/DSC_3504.jpg", + "preview": { + "350px": "./images/350px/DSC_3504.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e3cae95b7238b56f6049e13deb8b2d32143e9f00%20-%20DSC_3504.jpg" + }, + "id": "e3cae95b7238b56f6049e13deb8b2d32143e9f00", + "ctime": 1339157557.5932102 + }, + "75373d28daf6451f6a8d4af86da34be009d10bc7": { + "path": "./images/350px/DSC_3722.jpg", + "preview": { + "350px": "./images/350px/DSC_3722.jpg", + "150px": "./images/350px/.ImageGridCache/150px/75373d28daf6451f6a8d4af86da34be009d10bc7%20-%20DSC_3722.jpg" + }, + "id": "75373d28daf6451f6a8d4af86da34be009d10bc7", + "ctime": 1339157555.6404023 + }, + "8bb025a803af827dd389a265895294fdb06765c1": { + "path": "./images/350px/DSC_3522.jpg", + "preview": { + "350px": "./images/350px/DSC_3522.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8bb025a803af827dd389a265895294fdb06765c1%20-%20DSC_3522.jpg" + }, + "id": "8bb025a803af827dd389a265895294fdb06765c1", + "ctime": 1339157557.4229655 + }, + "853c9839db3cc9e6cca1bbdf8d6e3287958073c7": { + "path": "./images/350px/DSC_3757.jpg", + "preview": { + "350px": "./images/350px/DSC_3757.jpg", + "150px": "./images/350px/.ImageGridCache/150px/853c9839db3cc9e6cca1bbdf8d6e3287958073c7%20-%20DSC_3757.jpg" + }, + "id": "853c9839db3cc9e6cca1bbdf8d6e3287958073c7", + "ctime": 1339157555.2999127 + }, + "aedd7fb5ed381b0f6baa34c724eb42ecb17dd02b": { + "path": "./images/350px/DSC_3673.jpg", + "preview": { + "350px": "./images/350px/DSC_3673.jpg", + "150px": "./images/350px/.ImageGridCache/150px/aedd7fb5ed381b0f6baa34c724eb42ecb17dd02b%20-%20DSC_3673.jpg" + }, + "id": "aedd7fb5ed381b0f6baa34c724eb42ecb17dd02b", + "ctime": 1339157556.0009208 + }, + "3cceee3b351fcf7f656cacdb28c1161d7ce0e42e": { + "path": "./images/350px/DSC_3534.jpg", + "preview": { + "350px": "./images/350px/DSC_3534.jpg", + "150px": "./images/350px/.ImageGridCache/150px/3cceee3b351fcf7f656cacdb28c1161d7ce0e42e%20-%20DSC_3534.jpg" + }, + "id": "3cceee3b351fcf7f656cacdb28c1161d7ce0e42e", + "ctime": 1339157557.3228216 + }, + "9da91758f3588a346a2c2747f11ab1c386d19cae": { + "path": "./images/350px/DSC_3703.jpg", + "preview": { + "350px": "./images/350px/DSC_3703.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9da91758f3588a346a2c2747f11ab1c386d19cae%20-%20DSC_3703.jpg" + }, + "id": "9da91758f3588a346a2c2747f11ab1c386d19cae", + "ctime": 1339157555.8006327 + }, + "b82dd5935b472d7128d5eb3e7ef6ec91cab7b004": { + "path": "./images/350px/DSC_3648.jpg", + "preview": { + "350px": "./images/350px/DSC_3648.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b82dd5935b472d7128d5eb3e7ef6ec91cab7b004%20-%20DSC_3648.jpg" + }, + "id": "b82dd5935b472d7128d5eb3e7ef6ec91cab7b004", + "ctime": 1339157556.1911943 + }, + "68ca888cb315a3d2a801e74ba0a8d2f6d3ca3838": { + "path": "./images/350px/DSC_3656.jpg", + "preview": { + "350px": "./images/350px/DSC_3656.jpg", + "150px": "./images/350px/.ImageGridCache/150px/68ca888cb315a3d2a801e74ba0a8d2f6d3ca3838%20-%20DSC_3656.jpg" + }, + "id": "68ca888cb315a3d2a801e74ba0a8d2f6d3ca3838", + "ctime": 1339157556.1411223 + }, + "1c1bf9a8974e06a45eaeadf232865d7bd7f424c0": { + "path": "./images/350px/DSC_3632.jpg", + "preview": { + "350px": "./images/350px/DSC_3632.jpg", + "150px": "./images/350px/.ImageGridCache/150px/1c1bf9a8974e06a45eaeadf232865d7bd7f424c0%20-%20DSC_3632.jpg" + }, + "id": "1c1bf9a8974e06a45eaeadf232865d7bd7f424c0", + "ctime": 1339157556.3313959 + }, + "73cc7a979665786f08b6e46d07cd94380a5b37fe": { + "path": "./images/350px/DSC_3708.jpg", + "preview": { + "350px": "./images/350px/DSC_3708.jpg", + "150px": "./images/350px/.ImageGridCache/150px/73cc7a979665786f08b6e46d07cd94380a5b37fe%20-%20DSC_3708.jpg" + }, + "id": "73cc7a979665786f08b6e46d07cd94380a5b37fe", + "ctime": 1339157555.7505608 + }, + "4ae34f412978d63537b2cedb374923a8829a325c": { + "path": "./images/350px/DSC_3518.jpg", + "preview": { + "350px": "./images/350px/DSC_3518.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4ae34f412978d63537b2cedb374923a8829a325c%20-%20DSC_3518.jpg" + }, + "id": "4ae34f412978d63537b2cedb374923a8829a325c", + "ctime": 1339157557.4530087 + }, + "af2f5e3d12ffb40ed74b53f9bcf8b3aedb0d110d": { + "path": "./images/350px/DSC_3615.jpg", + "preview": { + "350px": "./images/350px/DSC_3615.jpg", + "150px": "./images/350px/.ImageGridCache/150px/af2f5e3d12ffb40ed74b53f9bcf8b3aedb0d110d%20-%20DSC_3615.jpg" + }, + "id": "af2f5e3d12ffb40ed74b53f9bcf8b3aedb0d110d", + "ctime": 1339157556.4916263 + }, + "be1b783c751b8f493b1f92e076a57baf8ba2b7c8": { + "path": "./images/350px/DSC_3607.jpg", + "preview": { + "350px": "./images/350px/DSC_3607.jpg", + "150px": "./images/350px/.ImageGridCache/150px/be1b783c751b8f493b1f92e076a57baf8ba2b7c8%20-%20DSC_3607.jpg" + }, + "id": "be1b783c751b8f493b1f92e076a57baf8ba2b7c8", + "ctime": 1339157556.5817559 + }, + "e15f681d7f11b9b57c169278d99a7930609e086b": { + "path": "./images/350px/DSC_3562.jpg", + "preview": { + "350px": "./images/350px/DSC_3562.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e15f681d7f11b9b57c169278d99a7930609e086b%20-%20DSC_3562.jpg" + }, + "id": "e15f681d7f11b9b57c169278d99a7930609e086b", + "ctime": 1339157557.0223894 + }, + "2f22679ae63873258c779b808946585b468b4707": { + "path": "./images/350px/DSC_3572.jpg", + "preview": { + "350px": "./images/350px/DSC_3572.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2f22679ae63873258c779b808946585b468b4707%20-%20DSC_3572.jpg" + }, + "id": "2f22679ae63873258c779b808946585b468b4707", + "ctime": 1339157556.9122312 + }, + "ab1b37f83a940dc358ddbcf40934d8dbc1f86a21": { + "path": "./images/350px/DSC_3558.jpg", + "preview": { + "350px": "./images/350px/DSC_3558.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ab1b37f83a940dc358ddbcf40934d8dbc1f86a21%20-%20DSC_3558.jpg" + }, + "id": "ab1b37f83a940dc358ddbcf40934d8dbc1f86a21", + "ctime": 1339157557.0924902 + }, + "fd3c1cc9c2a8155704e3cb2ace2dd3fc86b1920d": { + "path": "./images/350px/DSC_3574.jpg", + "preview": { + "350px": "./images/350px/DSC_3574.jpg", + "150px": "./images/350px/.ImageGridCache/150px/fd3c1cc9c2a8155704e3cb2ace2dd3fc86b1920d%20-%20DSC_3574.jpg" + }, + "id": "fd3c1cc9c2a8155704e3cb2ace2dd3fc86b1920d", + "ctime": 1339157556.8721735 + }, + "40253a9f8ff0ecac275851f6db4bf5236d68fd9c": { + "path": "./images/350px/DSC_3578.jpg", + "preview": { + "350px": "./images/350px/DSC_3578.jpg", + "150px": "./images/350px/.ImageGridCache/150px/40253a9f8ff0ecac275851f6db4bf5236d68fd9c%20-%20DSC_3578.jpg" + }, + "id": "40253a9f8ff0ecac275851f6db4bf5236d68fd9c", + "ctime": 1339157556.832116 + }, + "7ced0eefef81ed05df441db2437e7f78bd43c92d": { + "path": "./images/350px/DSC_3590.jpg", + "preview": { + "350px": "./images/350px/DSC_3590.jpg", + "150px": "./images/350px/.ImageGridCache/150px/7ced0eefef81ed05df441db2437e7f78bd43c92d%20-%20DSC_3590.jpg" + }, + "id": "7ced0eefef81ed05df441db2437e7f78bd43c92d", + "ctime": 1339157556.7720294 + }, + "77063b7804590152c6a400fcaf303e632b0aa60f": { + "path": "./images/350px/DSC_3699.jpg", + "preview": { + "350px": "./images/350px/DSC_3699.jpg", + "150px": "./images/350px/.ImageGridCache/150px/77063b7804590152c6a400fcaf303e632b0aa60f%20-%20DSC_3699.jpg" + }, + "id": "77063b7804590152c6a400fcaf303e632b0aa60f", + "ctime": 1339157555.8306758 + }, + "51fb2a161e281eb50f98984720666f95093e8d69": { + "path": "./images/350px/DSC_3535.jpg", + "preview": { + "350px": "./images/350px/DSC_3535.jpg", + "150px": "./images/350px/.ImageGridCache/150px/51fb2a161e281eb50f98984720666f95093e8d69%20-%20DSC_3535.jpg" + }, + "id": "51fb2a161e281eb50f98984720666f95093e8d69", + "ctime": 1339157557.3027928 + }, + "9d8196da0952cb05f5c06f215de6b75ccbbd3f32": { + "path": "./images/350px/DSC_3512.jpg", + "preview": { + "350px": "./images/350px/DSC_3512.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9d8196da0952cb05f5c06f215de6b75ccbbd3f32%20-%20DSC_3512.jpg" + }, + "id": "9d8196da0952cb05f5c06f215de6b75ccbbd3f32", + "ctime": 1339157557.5030806 + }, + "ad0d30f6f601366406774163c2110d1959886def": { + "path": "./images/350px/DSC_3619.jpg", + "preview": { + "350px": "./images/350px/DSC_3619.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ad0d30f6f601366406774163c2110d1959886def%20-%20DSC_3619.jpg" + }, + "id": "ad0d30f6f601366406774163c2110d1959886def", + "ctime": 1339157556.481612 + }, + "dee421b37a77824509c736803dd7d8cac634b565": { + "path": "./images/350px/DSC_3801.jpg", + "preview": { + "350px": "./images/350px/DSC_3801.jpg", + "150px": "./images/350px/.ImageGridCache/150px/dee421b37a77824509c736803dd7d8cac634b565%20-%20DSC_3801.jpg" + }, + "id": "dee421b37a77824509c736803dd7d8cac634b565", + "ctime": 1339157555.1496966 + }, + "9a4ef75e8a2725a422826684ca0ad7d06c384ec4": { + "path": "./images/350px/DSC_3543.jpg", + "preview": { + "350px": "./images/350px/DSC_3543.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9a4ef75e8a2725a422826684ca0ad7d06c384ec4%20-%20DSC_3543.jpg" + }, + "id": "9a4ef75e8a2725a422826684ca0ad7d06c384ec4", + "ctime": 1339157557.2527206 + }, + "cc2076041dc8b22d8b57429bd53f5f2f3bf8d299": { + "path": "./images/350px/DSC_3561.jpg", + "preview": { + "350px": "./images/350px/DSC_3561.jpg", + "150px": "./images/350px/.ImageGridCache/150px/cc2076041dc8b22d8b57429bd53f5f2f3bf8d299%20-%20DSC_3561.jpg" + }, + "id": "cc2076041dc8b22d8b57429bd53f5f2f3bf8d299", + "ctime": 1339157557.032404 + }, + "9de5a6d18b8d3e7e5ff0ccd0b4694a7e1d5641e9": { + "path": "./images/350px/DSC_3815.jpg", + "preview": { + "350px": "./images/350px/DSC_3815.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9de5a6d18b8d3e7e5ff0ccd0b4694a7e1d5641e9%20-%20DSC_3815.jpg" + }, + "id": "9de5a6d18b8d3e7e5ff0ccd0b4694a7e1d5641e9", + "ctime": 1339157555.0395384 + }, + "248d7d13283a04ead31f64e1e5b27187b2b96c01": { + "path": "./images/350px/DSC_3566.jpg", + "preview": { + "350px": "./images/350px/DSC_3566.jpg", + "150px": "./images/350px/.ImageGridCache/150px/248d7d13283a04ead31f64e1e5b27187b2b96c01%20-%20DSC_3566.jpg" + }, + "id": "248d7d13283a04ead31f64e1e5b27187b2b96c01", + "ctime": 1339157556.9923463 + }, + "0c4c930b9694eb62b7331e773cc01c74faa0bcf3": { + "path": "./images/350px/DSC_3545.jpg", + "preview": { + "350px": "./images/350px/DSC_3545.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0c4c930b9694eb62b7331e773cc01c74faa0bcf3%20-%20DSC_3545.jpg" + }, + "id": "0c4c930b9694eb62b7331e773cc01c74faa0bcf3", + "ctime": 1339157557.2226775 + }, + "4f839380237f3dbf0dc8eb3ff76e275a34f3caa4": { + "path": "./images/350px/DSC_3519.jpg", + "preview": { + "350px": "./images/350px/DSC_3519.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4f839380237f3dbf0dc8eb3ff76e275a34f3caa4%20-%20DSC_3519.jpg" + }, + "id": "4f839380237f3dbf0dc8eb3ff76e275a34f3caa4", + "ctime": 1339157557.4429944 + }, + "00cd4b2f48e6b52ce03b8db8653a54855f7d3dc6": { + "path": "./images/350px/DSC_3652.jpg", + "preview": { + "350px": "./images/350px/DSC_3652.jpg", + "150px": "./images/350px/.ImageGridCache/150px/00cd4b2f48e6b52ce03b8db8653a54855f7d3dc6%20-%20DSC_3652.jpg" + }, + "id": "00cd4b2f48e6b52ce03b8db8653a54855f7d3dc6", + "ctime": 1339157556.1611512 + }, + "eb5dfd47648c563cf376fc53b3f62b7038c704dc": { + "path": "./images/350px/DSC_3606.jpg", + "preview": { + "350px": "./images/350px/DSC_3606.jpg", + "150px": "./images/350px/.ImageGridCache/150px/eb5dfd47648c563cf376fc53b3f62b7038c704dc%20-%20DSC_3606.jpg" + }, + "id": "eb5dfd47648c563cf376fc53b3f62b7038c704dc", + "ctime": 1339157556.6017847 + }, + "2b38c04b4339513421cfd1640b3b6de28f94b8ac": { + "path": "./images/350px/DSC_3645.jpg", + "preview": { + "350px": "./images/350px/DSC_3645.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2b38c04b4339513421cfd1640b3b6de28f94b8ac%20-%20DSC_3645.jpg" + }, + "id": "2b38c04b4339513421cfd1640b3b6de28f94b8ac", + "ctime": 1339157556.2112231 + }, + "dd4f8d8ebcb5f452c6b678e890a4982cf893e496": { + "path": "./images/350px/DSC_3701.jpg", + "preview": { + "350px": "./images/350px/DSC_3701.jpg", + "150px": "./images/350px/.ImageGridCache/150px/dd4f8d8ebcb5f452c6b678e890a4982cf893e496%20-%20DSC_3701.jpg" + }, + "id": "dd4f8d8ebcb5f452c6b678e890a4982cf893e496", + "ctime": 1339157555.8206615 + }, + "b6b41b34819189258088d6e471190bf90bb34d25": { + "path": "./images/350px/DSC_3723.jpg", + "preview": { + "350px": "./images/350px/DSC_3723.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b6b41b34819189258088d6e471190bf90bb34d25%20-%20DSC_3723.jpg" + }, + "id": "b6b41b34819189258088d6e471190bf90bb34d25", + "ctime": 1339157555.6303878 + }, + "215074419931fdf9485da3434ef95df8bf3a0e00": { + "path": "./images/350px/DSC_3783.jpg", + "preview": { + "350px": "./images/350px/DSC_3783.jpg", + "150px": "./images/350px/.ImageGridCache/150px/215074419931fdf9485da3434ef95df8bf3a0e00%20-%20DSC_3783.jpg" + }, + "id": "215074419931fdf9485da3434ef95df8bf3a0e00", + "ctime": 1339157555.2398262 + }, + "8c137ee596d7b41e7f4e052412ff83d101138c47": { + "path": "./images/350px/DSC_3787.jpg", + "preview": { + "350px": "./images/350px/DSC_3787.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8c137ee596d7b41e7f4e052412ff83d101138c47%20-%20DSC_3787.jpg" + }, + "id": "8c137ee596d7b41e7f4e052412ff83d101138c47", + "ctime": 1339157555.2197976 + }, + "b9f96e11538bb333361875b749ece295558e7866": { + "path": "./images/350px/DSC_3627.jpg", + "preview": { + "350px": "./images/350px/DSC_3627.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b9f96e11538bb333361875b749ece295558e7866%20-%20DSC_3627.jpg" + }, + "id": "b9f96e11538bb333361875b749ece295558e7866", + "ctime": 1339157556.4014966 + }, + "a588425cb49dbf7baf8c302edb34412019a5e559": { + "path": "./images/350px/DSC_3661.jpg", + "preview": { + "350px": "./images/350px/DSC_3661.jpg", + "150px": "./images/350px/.ImageGridCache/150px/a588425cb49dbf7baf8c302edb34412019a5e559%20-%20DSC_3661.jpg" + }, + "id": "a588425cb49dbf7baf8c302edb34412019a5e559", + "ctime": 1339157556.0810359 + }, + "0189d11981822fc5f528901dec4880d4471aa075": { + "path": "./images/350px/DSC_3576.jpg", + "preview": { + "350px": "./images/350px/DSC_3576.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0189d11981822fc5f528901dec4880d4471aa075%20-%20DSC_3576.jpg" + }, + "id": "0189d11981822fc5f528901dec4880d4471aa075", + "ctime": 1339157556.8421302 + }, + "cfbac021afd77a6aa3edd714c1b98e88f80bcb72": { + "path": "./images/350px/DSC_3530.jpg", + "preview": { + "350px": "./images/350px/DSC_3530.jpg", + "150px": "./images/350px/.ImageGridCache/150px/cfbac021afd77a6aa3edd714c1b98e88f80bcb72%20-%20DSC_3530.jpg" + }, + "id": "cfbac021afd77a6aa3edd714c1b98e88f80bcb72", + "ctime": 1339157557.362879 + }, + "1c347b8d9fd0325d1d30b3797736ae376e35c356": { + "path": "./images/350px/DSC_3631.jpg", + "preview": { + "350px": "./images/350px/DSC_3631.jpg", + "150px": "./images/350px/.ImageGridCache/150px/1c347b8d9fd0325d1d30b3797736ae376e35c356%20-%20DSC_3631.jpg" + }, + "id": "1c347b8d9fd0325d1d30b3797736ae376e35c356", + "ctime": 1339157556.361439 + }, + "e70a45f489afee4e502b288ea329a3aaaa0ec9d9": { + "path": "./images/350px/DSC_3670.jpg", + "preview": { + "350px": "./images/350px/DSC_3670.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e70a45f489afee4e502b288ea329a3aaaa0ec9d9%20-%20DSC_3670.jpg" + }, + "id": "e70a45f489afee4e502b288ea329a3aaaa0ec9d9", + "ctime": 1339157556.010935 + }, + "a960f5e7b3b2a79c3275d9b0de587e2436cb7e87": { + "path": "./images/350px/DSC_3694.jpg", + "preview": { + "350px": "./images/350px/DSC_3694.jpg", + "150px": "./images/350px/.ImageGridCache/150px/a960f5e7b3b2a79c3275d9b0de587e2436cb7e87%20-%20DSC_3694.jpg" + }, + "id": "a960f5e7b3b2a79c3275d9b0de587e2436cb7e87", + "ctime": 1339157555.8807478 + }, + "ef13206121bd9321c2254f8e668ad865ba2766c7": { + "path": "./images/350px/DSC_3569.jpg", + "preview": { + "350px": "./images/350px/DSC_3569.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ef13206121bd9321c2254f8e668ad865ba2766c7%20-%20DSC_3569.jpg" + }, + "id": "ef13206121bd9321c2254f8e668ad865ba2766c7", + "ctime": 1339157556.9522886 + }, + "fb2eafbab8a5c77c80f4a3d41c69a22cf5a7d072": { + "path": "./images/350px/DSC_3753.jpg", + "preview": { + "350px": "./images/350px/DSC_3753.jpg", + "150px": "./images/350px/.ImageGridCache/150px/fb2eafbab8a5c77c80f4a3d41c69a22cf5a7d072%20-%20DSC_3753.jpg" + }, + "id": "fb2eafbab8a5c77c80f4a3d41c69a22cf5a7d072", + "ctime": 1339157555.3700135 + }, + "3e24bcb997c4a66800a545178127d0b7d06be311": { + "path": "./images/350px/DSC_3528.jpg", + "preview": { + "350px": "./images/350px/DSC_3528.jpg", + "150px": "./images/350px/.ImageGridCache/150px/3e24bcb997c4a66800a545178127d0b7d06be311%20-%20DSC_3528.jpg" + }, + "id": "3e24bcb997c4a66800a545178127d0b7d06be311", + "ctime": 1339157557.3728936 + }, + "c29bf6d3609de76d12f8240a26f488200458ade8": { + "path": "./images/350px/DSC_3763.jpg", + "preview": { + "350px": "./images/350px/DSC_3763.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c29bf6d3609de76d12f8240a26f488200458ade8%20-%20DSC_3763.jpg" + }, + "id": "c29bf6d3609de76d12f8240a26f488200458ade8", + "ctime": 1339157555.2898984 + }, + "4f1321fdd51d877186e8b47f8e77ae1b83fe268f": { + "path": "./images/350px/DSC_3711.jpg", + "preview": { + "350px": "./images/350px/DSC_3711.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4f1321fdd51d877186e8b47f8e77ae1b83fe268f%20-%20DSC_3711.jpg" + }, + "id": "4f1321fdd51d877186e8b47f8e77ae1b83fe268f", + "ctime": 1339157555.730532 + }, + "e25a2c75dd4a9faff887a2fe0543ff38be6afe9d": { + "path": "./images/350px/DSC_3751.jpg", + "preview": { + "350px": "./images/350px/DSC_3751.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e25a2c75dd4a9faff887a2fe0543ff38be6afe9d%20-%20DSC_3751.jpg" + }, + "id": "e25a2c75dd4a9faff887a2fe0543ff38be6afe9d", + "ctime": 1339157555.4200854 + }, + "53113f04d89828b6dde03bb731fa04fb1b694b97": { + "path": "./images/350px/DSC_3790.jpg", + "preview": { + "350px": "./images/350px/DSC_3790.jpg", + "150px": "./images/350px/.ImageGridCache/150px/53113f04d89828b6dde03bb731fa04fb1b694b97%20-%20DSC_3790.jpg" + }, + "id": "53113f04d89828b6dde03bb731fa04fb1b694b97", + "ctime": 1339157555.1997688 + }, + "5a6f8fe10dcc591abedf3f98b4d56de3c9732437": { + "path": "./images/350px/DSC_3716.jpg", + "preview": { + "350px": "./images/350px/DSC_3716.jpg", + "150px": "./images/350px/.ImageGridCache/150px/5a6f8fe10dcc591abedf3f98b4d56de3c9732437%20-%20DSC_3716.jpg" + }, + "id": "5a6f8fe10dcc591abedf3f98b4d56de3c9732437", + "ctime": 1339157555.6604311 + }, + "5e34bc6afa051598a410565f753437adb9c9698a": { + "path": "./images/350px/DSC_3794.jpg", + "preview": { + "350px": "./images/350px/DSC_3794.jpg", + "150px": "./images/350px/.ImageGridCache/150px/5e34bc6afa051598a410565f753437adb9c9698a%20-%20DSC_3794.jpg" + }, + "id": "5e34bc6afa051598a410565f753437adb9c9698a", + "ctime": 1339157555.1697254 + }, + "b940912958c7baf5b6c962e2a53418d2ad0a981a": { + "path": "./images/350px/DSC_3571.jpg", + "preview": { + "350px": "./images/350px/DSC_3571.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b940912958c7baf5b6c962e2a53418d2ad0a981a%20-%20DSC_3571.jpg" + }, + "id": "b940912958c7baf5b6c962e2a53418d2ad0a981a", + "ctime": 1339157556.9222455 + }, + "103e1483c94c8583f84d7ec9b57a3ee761023ffc": { + "path": "./images/350px/DSC_3532.jpg", + "preview": { + "350px": "./images/350px/DSC_3532.jpg", + "150px": "./images/350px/.ImageGridCache/150px/103e1483c94c8583f84d7ec9b57a3ee761023ffc%20-%20DSC_3532.jpg" + }, + "id": "103e1483c94c8583f84d7ec9b57a3ee761023ffc", + "ctime": 1339157557.3428502 + }, + "d3af89819356985ff58af45e0be0e42967571b07": { + "path": "./images/350px/DSC_3560.jpg", + "preview": { + "350px": "./images/350px/DSC_3560.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d3af89819356985ff58af45e0be0e42967571b07%20-%20DSC_3560.jpg" + }, + "id": "d3af89819356985ff58af45e0be0e42967571b07", + "ctime": 1339157557.0524328 + }, + "f4c4b1666be5cefb115865bcae058dff4179628a": { + "path": "./images/350px/DSC_3662.jpg", + "preview": { + "350px": "./images/350px/DSC_3662.jpg", + "150px": "./images/350px/.ImageGridCache/150px/f4c4b1666be5cefb115865bcae058dff4179628a%20-%20DSC_3662.jpg" + }, + "id": "f4c4b1666be5cefb115865bcae058dff4179628a", + "ctime": 1339157556.0710216 + }, + "87a689575d7b922dcb36ca5cbf1230867ec6b50a": { + "path": "./images/350px/DSC_3588.jpg", + "preview": { + "350px": "./images/350px/DSC_3588.jpg", + "150px": "./images/350px/.ImageGridCache/150px/87a689575d7b922dcb36ca5cbf1230867ec6b50a%20-%20DSC_3588.jpg" + }, + "id": "87a689575d7b922dcb36ca5cbf1230867ec6b50a", + "ctime": 1339157556.7720294 + }, + "1a0c5c2dc8bb7292523ea469afebdffc0d7df9ce": { + "path": "./images/350px/DSC_3601.jpg", + "preview": { + "350px": "./images/350px/DSC_3601.jpg", + "150px": "./images/350px/.ImageGridCache/150px/1a0c5c2dc8bb7292523ea469afebdffc0d7df9ce%20-%20DSC_3601.jpg" + }, + "id": "1a0c5c2dc8bb7292523ea469afebdffc0d7df9ce", + "ctime": 1339157556.6518567 + }, + "5b6f4cc9037ea5df8b2144dd2f377da2f986263f": { + "path": "./images/350px/DSC_3675.jpg", + "preview": { + "350px": "./images/350px/DSC_3675.jpg", + "150px": "./images/350px/.ImageGridCache/150px/5b6f4cc9037ea5df8b2144dd2f377da2f986263f%20-%20DSC_3675.jpg" + }, + "id": "5b6f4cc9037ea5df8b2144dd2f377da2f986263f", + "ctime": 1339157555.980892 + }, + "c34825a546a3c3d2a903318640c06b20a31594e0": { + "path": "./images/350px/DSC_3592.jpg", + "preview": { + "350px": "./images/350px/DSC_3592.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c34825a546a3c3d2a903318640c06b20a31594e0%20-%20DSC_3592.jpg" + }, + "id": "c34825a546a3c3d2a903318640c06b20a31594e0", + "ctime": 1339157556.7520008 + }, + "084fc81368da052625d176996415baa588e065b7": { + "path": "./images/350px/DSC_3547.jpg", + "preview": { + "350px": "./images/350px/DSC_3547.jpg", + "150px": "./images/350px/.ImageGridCache/150px/084fc81368da052625d176996415baa588e065b7%20-%20DSC_3547.jpg" + }, + "id": "084fc81368da052625d176996415baa588e065b7", + "ctime": 1339157557.1926343 + }, + "9944d0a8bc006337885bf2b3f78f7c3489ce09a8": { + "path": "./images/350px/DSC_3552.jpg", + "preview": { + "350px": "./images/350px/DSC_3552.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9944d0a8bc006337885bf2b3f78f7c3489ce09a8%20-%20DSC_3552.jpg" + }, + "id": "9944d0a8bc006337885bf2b3f78f7c3489ce09a8", + "ctime": 1339157557.1425624 + }, + "ed817d0844a595ca592c91910641168fea01698d": { + "path": "./images/350px/DSC_3766.jpg", + "preview": { + "350px": "./images/350px/DSC_3766.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ed817d0844a595ca592c91910641168fea01698d%20-%20DSC_3766.jpg" + }, + "id": "ed817d0844a595ca592c91910641168fea01698d", + "ctime": 1339157555.2698696 + }, + "efdeaaea84474051c79b0c359c1d648c9101ec93": { + "path": "./images/350px/DSC_3697.jpg", + "preview": { + "350px": "./images/350px/DSC_3697.jpg", + "150px": "./images/350px/.ImageGridCache/150px/efdeaaea84474051c79b0c359c1d648c9101ec93%20-%20DSC_3697.jpg" + }, + "id": "efdeaaea84474051c79b0c359c1d648c9101ec93", + "ctime": 1339157555.8707335 + }, + "db484a95309d521e00e773bc5aa66174eb926736": { + "path": "./images/350px/DSC_3731.jpg", + "preview": { + "350px": "./images/350px/DSC_3731.jpg", + "150px": "./images/350px/.ImageGridCache/150px/db484a95309d521e00e773bc5aa66174eb926736%20-%20DSC_3731.jpg" + }, + "id": "db484a95309d521e00e773bc5aa66174eb926736", + "ctime": 1339157555.560287 + }, + "865aef2863c7be0add1ae63eb6028ed8f6cdfbc0": { + "path": "./images/350px/DSC_3573.jpg", + "preview": { + "350px": "./images/350px/DSC_3573.jpg", + "150px": "./images/350px/.ImageGridCache/150px/865aef2863c7be0add1ae63eb6028ed8f6cdfbc0%20-%20DSC_3573.jpg" + }, + "id": "865aef2863c7be0add1ae63eb6028ed8f6cdfbc0", + "ctime": 1339157556.8922024 + }, + "6a27af782bb1faec0f5e87236936ab33e0a63666": { + "path": "./images/350px/DSC_3559.jpg", + "preview": { + "350px": "./images/350px/DSC_3559.jpg", + "150px": "./images/350px/.ImageGridCache/150px/6a27af782bb1faec0f5e87236936ab33e0a63666%20-%20DSC_3559.jpg" + }, + "id": "6a27af782bb1faec0f5e87236936ab33e0a63666", + "ctime": 1339157557.0724616 + }, + "2cb16d48aecca8582bdf207b3a5ccbf8d146d377": { + "path": "./images/350px/DSC_3506.jpg", + "preview": { + "350px": "./images/350px/DSC_3506.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2cb16d48aecca8582bdf207b3a5ccbf8d146d377%20-%20DSC_3506.jpg" + }, + "id": "2cb16d48aecca8582bdf207b3a5ccbf8d146d377", + "ctime": 1339157557.5731814 + }, + "b28436f4076c310e2161124431a76fbe51de4f02": { + "path": "./images/350px/DSC_3568.jpg", + "preview": { + "350px": "./images/350px/DSC_3568.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b28436f4076c310e2161124431a76fbe51de4f02%20-%20DSC_3568.jpg" + }, + "id": "b28436f4076c310e2161124431a76fbe51de4f02", + "ctime": 1339157556.9723175 + }, + "e24403b61b68ade228cbb7a905ad529ebc5a0d5d": { + "path": "./images/350px/DSC_3756.jpg", + "preview": { + "350px": "./images/350px/DSC_3756.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e24403b61b68ade228cbb7a905ad529ebc5a0d5d%20-%20DSC_3756.jpg" + }, + "id": "e24403b61b68ade228cbb7a905ad529ebc5a0d5d", + "ctime": 1339157555.3299558 + }, + "343fa36ce0eb0bbcf1ec0f26fc64db30062b9cf7": { + "path": "./images/350px/DSC_3602.jpg", + "preview": { + "350px": "./images/350px/DSC_3602.jpg", + "150px": "./images/350px/.ImageGridCache/150px/343fa36ce0eb0bbcf1ec0f26fc64db30062b9cf7%20-%20DSC_3602.jpg" + }, + "id": "343fa36ce0eb0bbcf1ec0f26fc64db30062b9cf7", + "ctime": 1339157556.6318278 + }, + "ac5ffe9eef55ab1acfe4ece727e5611fff64736e": { + "path": "./images/350px/DSC_3581.jpg", + "preview": { + "350px": "./images/350px/DSC_3581.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ac5ffe9eef55ab1acfe4ece727e5611fff64736e%20-%20DSC_3581.jpg" + }, + "id": "ac5ffe9eef55ab1acfe4ece727e5611fff64736e", + "ctime": 1339157556.7920582 + }, + "8cc6ddcd0950aa90e726d3cac0318c5497151802": { + "path": "./images/350px/DSC_3524.jpg", + "preview": { + "350px": "./images/350px/DSC_3524.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8cc6ddcd0950aa90e726d3cac0318c5497151802%20-%20DSC_3524.jpg" + }, + "id": "8cc6ddcd0950aa90e726d3cac0318c5497151802", + "ctime": 1339157557.4029367 + }, + "6d644b5939a5af48357159fb6192358ed840cd5b": { + "path": "./images/350px/DSC_3593.jpg", + "preview": { + "350px": "./images/350px/DSC_3593.jpg", + "150px": "./images/350px/.ImageGridCache/150px/6d644b5939a5af48357159fb6192358ed840cd5b%20-%20DSC_3593.jpg" + }, + "id": "6d644b5939a5af48357159fb6192358ed840cd5b", + "ctime": 1339157556.731972 + }, + "81168febbf7b1cfc42e12f58f1234a7d97bd752e": { + "path": "./images/350px/DSC_3741.jpg", + "preview": { + "350px": "./images/350px/DSC_3741.jpg", + "150px": "./images/350px/.ImageGridCache/150px/81168febbf7b1cfc42e12f58f1234a7d97bd752e%20-%20DSC_3741.jpg" + }, + "id": "81168febbf7b1cfc42e12f58f1234a7d97bd752e", + "ctime": 1339157555.4901862 + }, + "62375d60c740a5fad13739509acbb488b95929db": { + "path": "./images/350px/DSC_3816.jpg", + "preview": { + "350px": "./images/350px/DSC_3816.jpg", + "150px": "./images/350px/.ImageGridCache/150px/62375d60c740a5fad13739509acbb488b95929db%20-%20DSC_3816.jpg" + }, + "id": "62375d60c740a5fad13739509acbb488b95929db", + "ctime": 1339157555.009495 + }, + "561ab8630cb8802d8ca8993928f3417f2d009926": { + "path": "./images/350px/DSC_3614.jpg", + "preview": { + "350px": "./images/350px/DSC_3614.jpg", + "150px": "./images/350px/.ImageGridCache/150px/561ab8630cb8802d8ca8993928f3417f2d009926%20-%20DSC_3614.jpg" + }, + "id": "561ab8630cb8802d8ca8993928f3417f2d009926", + "ctime": 1339157556.5216694 + }, + "4ae58ed1f0ff3ae90144161f74ea83ffe9b399ff": { + "path": "./images/350px/DSC_3650.jpg", + "preview": { + "350px": "./images/350px/DSC_3650.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4ae58ed1f0ff3ae90144161f74ea83ffe9b399ff%20-%20DSC_3650.jpg" + }, + "id": "4ae58ed1f0ff3ae90144161f74ea83ffe9b399ff", + "ctime": 1339157556.18118 + }, + "8b7f0e1bcd5093ccf53614850175999f4ea51614": { + "path": "./images/350px/DSC_3736.jpg", + "preview": { + "350px": "./images/350px/DSC_3736.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8b7f0e1bcd5093ccf53614850175999f4ea51614%20-%20DSC_3736.jpg" + }, + "id": "8b7f0e1bcd5093ccf53614850175999f4ea51614", + "ctime": 1339157555.5302439 + }, + "2a6911830835adfb62756bca6b89155173df2c40": { + "path": "./images/350px/DSC_3503.jpg", + "preview": { + "350px": "./images/350px/DSC_3503.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2a6911830835adfb62756bca6b89155173df2c40%20-%20DSC_3503.jpg" + }, + "id": "2a6911830835adfb62756bca6b89155173df2c40", + "ctime": 1339157557.613239 + }, + "c1c3d63a61297548b66880c8312381dc7daf7ceb": { + "path": "./images/350px/DSC_3659.jpg", + "preview": { + "350px": "./images/350px/DSC_3659.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c1c3d63a61297548b66880c8312381dc7daf7ceb%20-%20DSC_3659.jpg" + }, + "id": "c1c3d63a61297548b66880c8312381dc7daf7ceb", + "ctime": 1339157556.1210935 + }, + "44ff5d7ace9b5cee8c34af97a97b35ac8edb17d4": { + "path": "./images/350px/DSC_3525.jpg", + "preview": { + "350px": "./images/350px/DSC_3525.jpg", + "150px": "./images/350px/.ImageGridCache/150px/44ff5d7ace9b5cee8c34af97a97b35ac8edb17d4%20-%20DSC_3525.jpg" + }, + "id": "44ff5d7ace9b5cee8c34af97a97b35ac8edb17d4", + "ctime": 1339157557.3929224 + }, + "bb028e5a8e2c7656139b5c740bd9d34d2f23790a": { + "path": "./images/350px/DSC_3710.jpg", + "preview": { + "350px": "./images/350px/DSC_3710.jpg", + "150px": "./images/350px/.ImageGridCache/150px/bb028e5a8e2c7656139b5c740bd9d34d2f23790a%20-%20DSC_3710.jpg" + }, + "id": "bb028e5a8e2c7656139b5c740bd9d34d2f23790a", + "ctime": 1339157555.730532 + }, + "454b3e20244240c7f1095d763a9ad9b2217470fd": { + "path": "./images/350px/DSC_3752.jpg", + "preview": { + "350px": "./images/350px/DSC_3752.jpg", + "150px": "./images/350px/.ImageGridCache/150px/454b3e20244240c7f1095d763a9ad9b2217470fd%20-%20DSC_3752.jpg" + }, + "id": "454b3e20244240c7f1095d763a9ad9b2217470fd", + "ctime": 1339157555.4100711 + }, + "63ba28ad920a5d9b21741b54657e61d422bd2943": { + "path": "./images/350px/DSC_3660.jpg", + "preview": { + "350px": "./images/350px/DSC_3660.jpg", + "150px": "./images/350px/.ImageGridCache/150px/63ba28ad920a5d9b21741b54657e61d422bd2943%20-%20DSC_3660.jpg" + }, + "id": "63ba28ad920a5d9b21741b54657e61d422bd2943", + "ctime": 1339157556.1010647 + }, + "22d7c116e9e6961e86d44d0b9be5524279def148": { + "path": "./images/350px/DSC_3807.jpg", + "preview": { + "350px": "./images/350px/DSC_3807.jpg", + "150px": "./images/350px/.ImageGridCache/150px/22d7c116e9e6961e86d44d0b9be5524279def148%20-%20DSC_3807.jpg" + }, + "id": "22d7c116e9e6961e86d44d0b9be5524279def148", + "ctime": 1339157555.129668 + }, + "30c593732188a660f91d526716d6fc3177e8426e": { + "path": "./images/350px/DSC_3640.jpg", + "preview": { + "350px": "./images/350px/DSC_3640.jpg", + "150px": "./images/350px/.ImageGridCache/150px/30c593732188a660f91d526716d6fc3177e8426e%20-%20DSC_3640.jpg" + }, + "id": "30c593732188a660f91d526716d6fc3177e8426e", + "ctime": 1339157556.2713096 + }, + "968b006dd5a13cee38816c14cdc5aa2e21f4cc5c": { + "path": "./images/350px/DSC_3643.jpg", + "preview": { + "350px": "./images/350px/DSC_3643.jpg", + "150px": "./images/350px/.ImageGridCache/150px/968b006dd5a13cee38816c14cdc5aa2e21f4cc5c%20-%20DSC_3643.jpg" + }, + "id": "968b006dd5a13cee38816c14cdc5aa2e21f4cc5c", + "ctime": 1339157556.231252 + }, + "0300bb0a25038baf4b49690254a53e4b52450682": { + "path": "./images/350px/DSC_3685.jpg", + "preview": { + "350px": "./images/350px/DSC_3685.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0300bb0a25038baf4b49690254a53e4b52450682%20-%20DSC_3685.jpg" + }, + "id": "0300bb0a25038baf4b49690254a53e4b52450682", + "ctime": 1339157555.93082 + }, + "9cc7a36f2b0e25d58518386066232bd99d657c2f": { + "path": "./images/350px/DSC_3542.jpg", + "preview": { + "350px": "./images/350px/DSC_3542.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9cc7a36f2b0e25d58518386066232bd99d657c2f%20-%20DSC_3542.jpg" + }, + "id": "9cc7a36f2b0e25d58518386066232bd99d657c2f", + "ctime": 1339157557.2727494 + }, + "3853d3af94dab47757d1eaeb1de2409a5beaefa9": { + "path": "./images/350px/DSC_3626.jpg", + "preview": { + "350px": "./images/350px/DSC_3626.jpg", + "150px": "./images/350px/.ImageGridCache/150px/3853d3af94dab47757d1eaeb1de2409a5beaefa9%20-%20DSC_3626.jpg" + }, + "id": "3853d3af94dab47757d1eaeb1de2409a5beaefa9", + "ctime": 1339157556.43154 + }, + "d6fe7efd25781b72643f6be80a5deed280476da1": { + "path": "./images/350px/DSC_3813.jpg", + "preview": { + "350px": "./images/350px/DSC_3813.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d6fe7efd25781b72643f6be80a5deed280476da1%20-%20DSC_3813.jpg" + }, + "id": "d6fe7efd25781b72643f6be80a5deed280476da1", + "ctime": 1339157555.0595672 + }, + "d08ce07f49247a274d7f58d361da2dd227e106f4": { + "path": "./images/350px/DSC_3637.jpg", + "preview": { + "350px": "./images/350px/DSC_3637.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d08ce07f49247a274d7f58d361da2dd227e106f4%20-%20DSC_3637.jpg" + }, + "id": "d08ce07f49247a274d7f58d361da2dd227e106f4", + "ctime": 1339157556.3013527 + }, + "e28a78f65a060366d9ff587e322fb9e7a640781e": { + "path": "./images/350px/DSC_3546.jpg", + "preview": { + "350px": "./images/350px/DSC_3546.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e28a78f65a060366d9ff587e322fb9e7a640781e%20-%20DSC_3546.jpg" + }, + "id": "e28a78f65a060366d9ff587e322fb9e7a640781e", + "ctime": 1339157557.2026486 + }, + "63156551e3aaf9777a0506890d70f41d2f3ce987": { + "path": "./images/350px/DSC_3628.jpg", + "preview": { + "350px": "./images/350px/DSC_3628.jpg", + "150px": "./images/350px/.ImageGridCache/150px/63156551e3aaf9777a0506890d70f41d2f3ce987%20-%20DSC_3628.jpg" + }, + "id": "63156551e3aaf9777a0506890d70f41d2f3ce987", + "ctime": 1339157556.3814678 + }, + "0813d919a51cf4046b988858b919cac9a05f5d6d": { + "path": "./images/350px/DSC_3730.jpg", + "preview": { + "350px": "./images/350px/DSC_3730.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0813d919a51cf4046b988858b919cac9a05f5d6d%20-%20DSC_3730.jpg" + }, + "id": "0813d919a51cf4046b988858b919cac9a05f5d6d", + "ctime": 1339157555.5803158 + }, + "d5f78b936331ecd255e7a69caf658540925103a4": { + "path": "./images/350px/DSC_3549.jpg", + "preview": { + "350px": "./images/350px/DSC_3549.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d5f78b936331ecd255e7a69caf658540925103a4%20-%20DSC_3549.jpg" + }, + "id": "d5f78b936331ecd255e7a69caf658540925103a4", + "ctime": 1339157557.1525767 + } + } + ] +} diff --git a/ui (gen1)/images.json b/ui (gen1)/images.json new file mode 100755 index 00000000..cf4036ef --- /dev/null +++ b/ui (gen1)/images.json @@ -0,0 +1,1330 @@ +{ + "position": "2540533da23b401485af2b14588f2e385c8ce0a5", + "ribbons": [ + { + "2540533da23b401485af2b14588f2e385c8ce0a5": { + "path": "./images/350px/DSC_3698.jpg", + "preview": { + "350px": "./images/350px/DSC_3698.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2540533da23b401485af2b14588f2e385c8ce0a5%20-%20DSC_3698.jpg" + }, + "id": "2540533da23b401485af2b14588f2e385c8ce0a5", + "ctime": 1339157555.8507047 + }, + "03162bb32ae0468507979d340ec0a45438b809aa": { + "path": "./images/350px/DSC_3755.jpg", + "preview": { + "350px": "./images/350px/DSC_3755.jpg", + "150px": "./images/350px/.ImageGridCache/150px/03162bb32ae0468507979d340ec0a45438b809aa%20-%20DSC_3755.jpg" + }, + "id": "03162bb32ae0468507979d340ec0a45438b809aa", + "ctime": 1339157555.3499846 + }, + "caf04703ac0a884df5de75bf1f12c7611132c0e9": { + "path": "./images/350px/DSC_3713.jpg", + "preview": { + "350px": "./images/350px/DSC_3713.jpg", + "150px": "./images/350px/.ImageGridCache/150px/caf04703ac0a884df5de75bf1f12c7611132c0e9%20-%20DSC_3713.jpg" + }, + "id": "caf04703ac0a884df5de75bf1f12c7611132c0e9", + "ctime": 1339157555.7004888 + }, + "dcb47754e398f86ddaa56dae399ab3e5cb8224d1": { + "path": "./images/350px/DSC_3511.jpg", + "preview": { + "350px": "./images/350px/DSC_3511.jpg", + "150px": "./images/350px/.ImageGridCache/150px/dcb47754e398f86ddaa56dae399ab3e5cb8224d1%20-%20DSC_3511.jpg" + }, + "id": "dcb47754e398f86ddaa56dae399ab3e5cb8224d1", + "ctime": 1339157557.533124 + }, + "d8aa1abff224e99fe5b9b7cb54750051c81469ad": { + "path": "./images/350px/DSC_3664.jpg", + "preview": { + "350px": "./images/350px/DSC_3664.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d8aa1abff224e99fe5b9b7cb54750051c81469ad%20-%20DSC_3664.jpg" + }, + "id": "d8aa1abff224e99fe5b9b7cb54750051c81469ad", + "ctime": 1339157556.0509927 + }, + "13d8d7c28571000105a72094610517e8412c813b": { + "path": "./images/350px/DSC_3611.jpg", + "preview": { + "350px": "./images/350px/DSC_3611.jpg", + "150px": "./images/350px/.ImageGridCache/150px/13d8d7c28571000105a72094610517e8412c813b%20-%20DSC_3611.jpg" + }, + "id": "13d8d7c28571000105a72094610517e8412c813b", + "ctime": 1339157556.5517128 + }, + "fc161f187548fb432d5f5ebfd0cd5e358a774db0": { + "path": "./images/350px/DSC_3516.jpg", + "preview": { + "350px": "./images/350px/DSC_3516.jpg", + "150px": "./images/350px/.ImageGridCache/150px/fc161f187548fb432d5f5ebfd0cd5e358a774db0%20-%20DSC_3516.jpg" + }, + "id": "fc161f187548fb432d5f5ebfd0cd5e358a774db0", + "ctime": 1339157557.4930663 + }, + "bd2a4d7da462256c6fb3a80131532b1e3a5d9b42": { + "path": "./images/350px/DSC_3555.jpg", + "preview": { + "350px": "./images/350px/DSC_3555.jpg", + "150px": "./images/350px/.ImageGridCache/150px/bd2a4d7da462256c6fb3a80131532b1e3a5d9b42%20-%20DSC_3555.jpg" + }, + "id": "bd2a4d7da462256c6fb3a80131532b1e3a5d9b42", + "ctime": 1339157557.1025047 + }, + "777f053cf3f6103a434914da32e7af7b757d1cc0": { + "path": "./images/350px/DSC_3812.jpg", + "preview": { + "350px": "./images/350px/DSC_3812.jpg", + "150px": "./images/350px/.ImageGridCache/150px/777f053cf3f6103a434914da32e7af7b757d1cc0%20-%20DSC_3812.jpg" + }, + "id": "777f053cf3f6103a434914da32e7af7b757d1cc0", + "ctime": 1339157555.0896103 + }, + "7801dd0ab5e839a437555db81a8cfdfb656905cf": { + "path": "./images/350px/DSC_3586.jpg", + "preview": { + "350px": "./images/350px/DSC_3586.jpg", + "150px": "./images/350px/.ImageGridCache/150px/7801dd0ab5e839a437555db81a8cfdfb656905cf%20-%20DSC_3586.jpg" + }, + "id": "7801dd0ab5e839a437555db81a8cfdfb656905cf", + "ctime": 1339157556.782044 + }, + "32fe39dbf722ad06966c047f8b53caff3020e271": { + "path": "./images/350px/DSC_3714.jpg", + "preview": { + "350px": "./images/350px/DSC_3714.jpg", + "150px": "./images/350px/.ImageGridCache/150px/32fe39dbf722ad06966c047f8b53caff3020e271%20-%20DSC_3714.jpg" + }, + "id": "32fe39dbf722ad06966c047f8b53caff3020e271", + "ctime": 1339157555.68046 + }, + "99ecaf0b098e4543056eefd59d39c582e47f9d6b": { + "path": "./images/350px/DSC_3693.jpg", + "preview": { + "350px": "./images/350px/DSC_3693.jpg", + "150px": "./images/350px/.ImageGridCache/150px/99ecaf0b098e4543056eefd59d39c582e47f9d6b%20-%20DSC_3693.jpg" + }, + "id": "99ecaf0b098e4543056eefd59d39c582e47f9d6b", + "ctime": 1339157555.9007766 + }, + "d5746ea5fa662a8ea939d3025542c822a765bc82": { + "path": "./images/350px/DSC_3705.jpg", + "preview": { + "350px": "./images/350px/DSC_3705.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d5746ea5fa662a8ea939d3025542c822a765bc82%20-%20DSC_3705.jpg" + }, + "id": "d5746ea5fa662a8ea939d3025542c822a765bc82", + "ctime": 1339157555.760575 + }, + "89f6d82d64e2f1451ade39101a63e79be3c21668": { + "path": "./images/350px/DSC_3537.jpg", + "preview": { + "350px": "./images/350px/DSC_3537.jpg", + "150px": "./images/350px/.ImageGridCache/150px/89f6d82d64e2f1451ade39101a63e79be3c21668%20-%20DSC_3537.jpg" + }, + "id": "89f6d82d64e2f1451ade39101a63e79be3c21668", + "ctime": 1339157557.2927783 + }, + "26172b8447d5b8f3038c5f60269131db4e11b104": { + "path": "./images/350px/DSC_3653.jpg", + "preview": { + "350px": "./images/350px/DSC_3653.jpg", + "150px": "./images/350px/.ImageGridCache/150px/26172b8447d5b8f3038c5f60269131db4e11b104%20-%20DSC_3653.jpg" + }, + "id": "26172b8447d5b8f3038c5f60269131db4e11b104", + "ctime": 1339157556.1511366 + }, + "a432d915e9282caa8814a5877137f489d73caf0c": { + "path": "./images/350px/DSC_3633.jpg", + "preview": { + "350px": "./images/350px/DSC_3633.jpg", + "150px": "./images/350px/.ImageGridCache/150px/a432d915e9282caa8814a5877137f489d73caf0c%20-%20DSC_3633.jpg" + }, + "id": "a432d915e9282caa8814a5877137f489d73caf0c", + "ctime": 1339157556.3213816 + }, + "0a7a3f7bbd3c7a0839c4adb67f96f8008397be04": { + "path": "./images/350px/DSC_3744.jpg", + "preview": { + "350px": "./images/350px/DSC_3744.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0a7a3f7bbd3c7a0839c4adb67f96f8008397be04%20-%20DSC_3744.jpg" + }, + "id": "0a7a3f7bbd3c7a0839c4adb67f96f8008397be04", + "ctime": 1339157555.4401143 + }, + "e5ed9c0002505b7a40878ebb95bab2202c20a1f4": { + "path": "./images/350px/DSC_3638.jpg", + "preview": { + "350px": "./images/350px/DSC_3638.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e5ed9c0002505b7a40878ebb95bab2202c20a1f4%20-%20DSC_3638.jpg" + }, + "id": "e5ed9c0002505b7a40878ebb95bab2202c20a1f4", + "ctime": 1339157556.281324 + }, + "ef96325e40a88ece2cec79ce2e12b0365e70c162": { + "path": "./images/350px/DSC_3570.jpg", + "preview": { + "350px": "./images/350px/DSC_3570.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ef96325e40a88ece2cec79ce2e12b0365e70c162%20-%20DSC_3570.jpg" + }, + "id": "ef96325e40a88ece2cec79ce2e12b0365e70c162", + "ctime": 1339157556.9422743 + }, + "b3b184296bea88a8fa72d5f4861973a8701dea01": { + "path": "./images/350px/DSC_3608.jpg", + "preview": { + "350px": "./images/350px/DSC_3608.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b3b184296bea88a8fa72d5f4861973a8701dea01%20-%20DSC_3608.jpg" + }, + "id": "b3b184296bea88a8fa72d5f4861973a8701dea01", + "ctime": 1339157556.5717416 + }, + "18a3f4bd958ce00ea810216752072e704c7b5795": { + "path": "./images/350px/DSC_3509.jpg", + "preview": { + "350px": "./images/350px/DSC_3509.jpg", + "150px": "./images/350px/.ImageGridCache/150px/18a3f4bd958ce00ea810216752072e704c7b5795%20-%20DSC_3509.jpg" + }, + "id": "18a3f4bd958ce00ea810216752072e704c7b5795", + "ctime": 1339157557.5431383 + }, + "b34ace0518a595880d12228d784656fd385a218e": { + "path": "./images/350px/DSC_3613.jpg", + "preview": { + "350px": "./images/350px/DSC_3613.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b34ace0518a595880d12228d784656fd385a218e%20-%20DSC_3613.jpg" + }, + "id": "b34ace0518a595880d12228d784656fd385a218e", + "ctime": 1339157556.5416982 + }, + "923e297a7df72bb9bd242008114e8a4ce557abdf": { + "path": "./images/350px/DSC_3677.jpg", + "preview": { + "350px": "./images/350px/DSC_3677.jpg", + "150px": "./images/350px/.ImageGridCache/150px/923e297a7df72bb9bd242008114e8a4ce557abdf%20-%20DSC_3677.jpg" + }, + "id": "923e297a7df72bb9bd242008114e8a4ce557abdf", + "ctime": 1339157555.960863 + }, + "b1a9dc4a268212e97d05791731aea6f91bef84de": { + "path": "./images/350px/DSC_3598.jpg", + "preview": { + "350px": "./images/350px/DSC_3598.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b1a9dc4a268212e97d05791731aea6f91bef84de%20-%20DSC_3598.jpg" + }, + "id": "b1a9dc4a268212e97d05791731aea6f91bef84de", + "ctime": 1339157556.6818998 + }, + "f2b763155e8c4c7b3a77af27abc8377ac66b0d9a": { + "path": "./images/350px/DSC_3686.jpg", + "preview": { + "350px": "./images/350px/DSC_3686.jpg", + "150px": "./images/350px/.ImageGridCache/150px/f2b763155e8c4c7b3a77af27abc8377ac66b0d9a%20-%20DSC_3686.jpg" + }, + "id": "f2b763155e8c4c7b3a77af27abc8377ac66b0d9a", + "ctime": 1339157555.9107912 + }, + "7d1885c2b1c6428ed66d5ba78f5bbab9d6dfca82": { + "path": "./images/350px/DSC_3605.jpg", + "preview": { + "350px": "./images/350px/DSC_3605.jpg", + "150px": "./images/350px/.ImageGridCache/150px/7d1885c2b1c6428ed66d5ba78f5bbab9d6dfca82%20-%20DSC_3605.jpg" + }, + "id": "7d1885c2b1c6428ed66d5ba78f5bbab9d6dfca82", + "ctime": 1339157556.6218135 + }, + "0efb3029557c7deaa4121bdeaff2506c32ef1662": { + "path": "./images/350px/DSC_3565.jpg", + "preview": { + "350px": "./images/350px/DSC_3565.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0efb3029557c7deaa4121bdeaff2506c32ef1662%20-%20DSC_3565.jpg" + }, + "id": "0efb3029557c7deaa4121bdeaff2506c32ef1662", + "ctime": 1339157557.0023606 + }, + "929da4b36039bcdd2c80d7903db47ffbcd568902": { + "path": "./images/350px/DSC_3712.jpg", + "preview": { + "350px": "./images/350px/DSC_3712.jpg", + "150px": "./images/350px/.ImageGridCache/150px/929da4b36039bcdd2c80d7903db47ffbcd568902%20-%20DSC_3712.jpg" + }, + "id": "929da4b36039bcdd2c80d7903db47ffbcd568902", + "ctime": 1339157555.710503 + }, + "8ee0ab33ace2d227d9077aa5dc4ac4b25bff5445": { + "path": "./images/350px/DSC_3781.jpg", + "preview": { + "350px": "./images/350px/DSC_3781.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8ee0ab33ace2d227d9077aa5dc4ac4b25bff5445%20-%20DSC_3781.jpg" + }, + "id": "8ee0ab33ace2d227d9077aa5dc4ac4b25bff5445", + "ctime": 1339157555.2498407 + }, + "de81dfd41412595d95e779e8b64d6e3a81c14cd1": { + "path": "./images/350px/DSC_3727.jpg", + "preview": { + "350px": "./images/350px/DSC_3727.jpg", + "150px": "./images/350px/.ImageGridCache/150px/de81dfd41412595d95e779e8b64d6e3a81c14cd1%20-%20DSC_3727.jpg" + }, + "id": "de81dfd41412595d95e779e8b64d6e3a81c14cd1", + "ctime": 1339157555.5903304 + }, + "b5b43cfb3c2de2f6637f52d7b5de0c0723967b8c": { + "path": "./images/350px/DSC_3737.jpg", + "preview": { + "350px": "./images/350px/DSC_3737.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b5b43cfb3c2de2f6637f52d7b5de0c0723967b8c%20-%20DSC_3737.jpg" + }, + "id": "b5b43cfb3c2de2f6637f52d7b5de0c0723967b8c", + "ctime": 1339157555.510215 + }, + "b8fe169b76d12dd960e5f81c6489b9b2a0f009bd": { + "path": "./images/350px/DSC_3599.jpg", + "preview": { + "350px": "./images/350px/DSC_3599.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b8fe169b76d12dd960e5f81c6489b9b2a0f009bd%20-%20DSC_3599.jpg" + }, + "id": "b8fe169b76d12dd960e5f81c6489b9b2a0f009bd", + "ctime": 1339157556.6718855 + }, + "8703e98633a09faa402a799194d9b93b7991e449": { + "path": "./images/350px/DSC_3666.jpg", + "preview": { + "350px": "./images/350px/DSC_3666.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8703e98633a09faa402a799194d9b93b7991e449%20-%20DSC_3666.jpg" + }, + "id": "8703e98633a09faa402a799194d9b93b7991e449", + "ctime": 1339157556.030964 + }, + "70bcbbd3b3b62c804ba5c69d3e788774d6167147": { + "path": "./images/350px/DSC_3575.jpg", + "preview": { + "350px": "./images/350px/DSC_3575.jpg", + "150px": "./images/350px/.ImageGridCache/150px/70bcbbd3b3b62c804ba5c69d3e788774d6167147%20-%20DSC_3575.jpg" + }, + "id": "70bcbbd3b3b62c804ba5c69d3e788774d6167147", + "ctime": 1339157556.862159 + }, + "f7421a5e3ff51c8302cda7cbecb7694aab94d98f": { + "path": "./images/350px/DSC_3726.jpg", + "preview": { + "350px": "./images/350px/DSC_3726.jpg", + "150px": "./images/350px/.ImageGridCache/150px/f7421a5e3ff51c8302cda7cbecb7694aab94d98f%20-%20DSC_3726.jpg" + }, + "id": "f7421a5e3ff51c8302cda7cbecb7694aab94d98f", + "ctime": 1339157555.6103592 + }, + "d28cb25a0d5729594b89740d6b61ae00556fe1fb": { + "path": "./images/350px/DSC_3508.jpg", + "preview": { + "350px": "./images/350px/DSC_3508.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d28cb25a0d5729594b89740d6b61ae00556fe1fb%20-%20DSC_3508.jpg" + }, + "id": "d28cb25a0d5729594b89740d6b61ae00556fe1fb", + "ctime": 1339157557.5531528 + }, + "c9669e076bee492ad499a83eaf71b173155991f2": { + "path": "./images/350px/DSC_3623.jpg", + "preview": { + "350px": "./images/350px/DSC_3623.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c9669e076bee492ad499a83eaf71b173155991f2%20-%20DSC_3623.jpg" + }, + "id": "c9669e076bee492ad499a83eaf71b173155991f2", + "ctime": 1339157556.4615831 + }, + "ae6e160c5c449181b78822babddb82bb5f62fde7": { + "path": "./images/350px/DSC_3793.jpg", + "preview": { + "350px": "./images/350px/DSC_3793.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ae6e160c5c449181b78822babddb82bb5f62fde7%20-%20DSC_3793.jpg" + }, + "id": "ae6e160c5c449181b78822babddb82bb5f62fde7", + "ctime": 1339157555.1897542 + }, + "5c494f9e019709e92ec2d392d8a55f1d2e416ca9": { + "path": "./images/350px/DSC_3501.jpg", + "preview": { + "350px": "./images/350px/DSC_3501.jpg", + "150px": "./images/350px/.ImageGridCache/150px/5c494f9e019709e92ec2d392d8a55f1d2e416ca9%20-%20DSC_3501.jpg" + }, + "id": "5c494f9e019709e92ec2d392d8a55f1d2e416ca9", + "ctime": 1339157557.6332679 + }, + "4e29e5f8dff699b38c3a281887b1bd4cebb57e04": { + "path": "./images/350px/DSC_3595.jpg", + "preview": { + "350px": "./images/350px/DSC_3595.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4e29e5f8dff699b38c3a281887b1bd4cebb57e04%20-%20DSC_3595.jpg" + }, + "id": "4e29e5f8dff699b38c3a281887b1bd4cebb57e04", + "ctime": 1339157556.7019286 + }, + "cb0a2e9713f45909d1f1f2516cb590e3f1acf534": { + "path": "./images/350px/DSC_3548.jpg", + "preview": { + "350px": "./images/350px/DSC_3548.jpg", + "150px": "./images/350px/.ImageGridCache/150px/cb0a2e9713f45909d1f1f2516cb590e3f1acf534%20-%20DSC_3548.jpg" + }, + "id": "cb0a2e9713f45909d1f1f2516cb590e3f1acf534", + "ctime": 1339157557.1726055 + }, + "ac6c5f039262643496583b2a5756793939199abf": { + "path": "./images/350px/DSC_3594.jpg", + "preview": { + "350px": "./images/350px/DSC_3594.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ac6c5f039262643496583b2a5756793939199abf%20-%20DSC_3594.jpg" + }, + "id": "ac6c5f039262643496583b2a5756793939199abf", + "ctime": 1339157556.7119431 + }, + "8fb694920ddc9e2682c7091ec09a855ed394980d": { + "path": "./images/350px/DSC_3641.jpg", + "preview": { + "350px": "./images/350px/DSC_3641.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8fb694920ddc9e2682c7091ec09a855ed394980d%20-%20DSC_3641.jpg" + }, + "id": "8fb694920ddc9e2682c7091ec09a855ed394980d", + "ctime": 1339157556.2512808 + }, + "af1fcb733024ffda0ae638bfc881ba83b868d2be": { + "path": "./images/350px/DSC_3682.jpg", + "preview": { + "350px": "./images/350px/DSC_3682.jpg", + "150px": "./images/350px/.ImageGridCache/150px/af1fcb733024ffda0ae638bfc881ba83b868d2be%20-%20DSC_3682.jpg" + }, + "id": "af1fcb733024ffda0ae638bfc881ba83b868d2be", + "ctime": 1339157555.9508488 + }, + "7c6863909e0727583d3125071afc94f158804bc0": { + "path": "./images/350px/DSC_3733.jpg", + "preview": { + "350px": "./images/350px/DSC_3733.jpg", + "150px": "./images/350px/.ImageGridCache/150px/7c6863909e0727583d3125071afc94f158804bc0%20-%20DSC_3733.jpg" + }, + "id": "7c6863909e0727583d3125071afc94f158804bc0", + "ctime": 1339157555.5502727 + }, + "8841793c1b83dd663e4c15c0f619cfd1fde582ff": { + "path": "./images/350px/DSC_3517.jpg", + "preview": { + "350px": "./images/350px/DSC_3517.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8841793c1b83dd663e4c15c0f619cfd1fde582ff%20-%20DSC_3517.jpg" + }, + "id": "8841793c1b83dd663e4c15c0f619cfd1fde582ff", + "ctime": 1339157557.4730375 + }, + "c0a4e57deeff4042d1bf3436f0dad231b05a8c17": { + "path": "./images/350px/DSC_3624.jpg", + "preview": { + "350px": "./images/350px/DSC_3624.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c0a4e57deeff4042d1bf3436f0dad231b05a8c17%20-%20DSC_3624.jpg" + }, + "id": "c0a4e57deeff4042d1bf3436f0dad231b05a8c17", + "ctime": 1339157556.4515686 + }, + "a116aa6f2b61497585704f0afcdd2cccdbe352ec": { + "path": "./images/350px/DSC_3553.jpg", + "preview": { + "350px": "./images/350px/DSC_3553.jpg", + "150px": "./images/350px/.ImageGridCache/150px/a116aa6f2b61497585704f0afcdd2cccdbe352ec%20-%20DSC_3553.jpg" + }, + "id": "a116aa6f2b61497585704f0afcdd2cccdbe352ec", + "ctime": 1339157557.1225336 + }, + "e3cae95b7238b56f6049e13deb8b2d32143e9f00": { + "path": "./images/350px/DSC_3504.jpg", + "preview": { + "350px": "./images/350px/DSC_3504.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e3cae95b7238b56f6049e13deb8b2d32143e9f00%20-%20DSC_3504.jpg" + }, + "id": "e3cae95b7238b56f6049e13deb8b2d32143e9f00", + "ctime": 1339157557.5932102 + }, + "75373d28daf6451f6a8d4af86da34be009d10bc7": { + "path": "./images/350px/DSC_3722.jpg", + "preview": { + "350px": "./images/350px/DSC_3722.jpg", + "150px": "./images/350px/.ImageGridCache/150px/75373d28daf6451f6a8d4af86da34be009d10bc7%20-%20DSC_3722.jpg" + }, + "id": "75373d28daf6451f6a8d4af86da34be009d10bc7", + "ctime": 1339157555.6404023 + }, + "8bb025a803af827dd389a265895294fdb06765c1": { + "path": "./images/350px/DSC_3522.jpg", + "preview": { + "350px": "./images/350px/DSC_3522.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8bb025a803af827dd389a265895294fdb06765c1%20-%20DSC_3522.jpg" + }, + "id": "8bb025a803af827dd389a265895294fdb06765c1", + "ctime": 1339157557.4229655 + }, + "853c9839db3cc9e6cca1bbdf8d6e3287958073c7": { + "path": "./images/350px/DSC_3757.jpg", + "preview": { + "350px": "./images/350px/DSC_3757.jpg", + "150px": "./images/350px/.ImageGridCache/150px/853c9839db3cc9e6cca1bbdf8d6e3287958073c7%20-%20DSC_3757.jpg" + }, + "id": "853c9839db3cc9e6cca1bbdf8d6e3287958073c7", + "ctime": 1339157555.2999127 + }, + "aedd7fb5ed381b0f6baa34c724eb42ecb17dd02b": { + "path": "./images/350px/DSC_3673.jpg", + "preview": { + "350px": "./images/350px/DSC_3673.jpg", + "150px": "./images/350px/.ImageGridCache/150px/aedd7fb5ed381b0f6baa34c724eb42ecb17dd02b%20-%20DSC_3673.jpg" + }, + "id": "aedd7fb5ed381b0f6baa34c724eb42ecb17dd02b", + "ctime": 1339157556.0009208 + }, + "3cceee3b351fcf7f656cacdb28c1161d7ce0e42e": { + "path": "./images/350px/DSC_3534.jpg", + "preview": { + "350px": "./images/350px/DSC_3534.jpg", + "150px": "./images/350px/.ImageGridCache/150px/3cceee3b351fcf7f656cacdb28c1161d7ce0e42e%20-%20DSC_3534.jpg" + }, + "id": "3cceee3b351fcf7f656cacdb28c1161d7ce0e42e", + "ctime": 1339157557.3228216 + }, + "9da91758f3588a346a2c2747f11ab1c386d19cae": { + "path": "./images/350px/DSC_3703.jpg", + "preview": { + "350px": "./images/350px/DSC_3703.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9da91758f3588a346a2c2747f11ab1c386d19cae%20-%20DSC_3703.jpg" + }, + "id": "9da91758f3588a346a2c2747f11ab1c386d19cae", + "ctime": 1339157555.8006327 + }, + "b82dd5935b472d7128d5eb3e7ef6ec91cab7b004": { + "path": "./images/350px/DSC_3648.jpg", + "preview": { + "350px": "./images/350px/DSC_3648.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b82dd5935b472d7128d5eb3e7ef6ec91cab7b004%20-%20DSC_3648.jpg" + }, + "id": "b82dd5935b472d7128d5eb3e7ef6ec91cab7b004", + "ctime": 1339157556.1911943 + }, + "68ca888cb315a3d2a801e74ba0a8d2f6d3ca3838": { + "path": "./images/350px/DSC_3656.jpg", + "preview": { + "350px": "./images/350px/DSC_3656.jpg", + "150px": "./images/350px/.ImageGridCache/150px/68ca888cb315a3d2a801e74ba0a8d2f6d3ca3838%20-%20DSC_3656.jpg" + }, + "id": "68ca888cb315a3d2a801e74ba0a8d2f6d3ca3838", + "ctime": 1339157556.1411223 + }, + "1c1bf9a8974e06a45eaeadf232865d7bd7f424c0": { + "path": "./images/350px/DSC_3632.jpg", + "preview": { + "350px": "./images/350px/DSC_3632.jpg", + "150px": "./images/350px/.ImageGridCache/150px/1c1bf9a8974e06a45eaeadf232865d7bd7f424c0%20-%20DSC_3632.jpg" + }, + "id": "1c1bf9a8974e06a45eaeadf232865d7bd7f424c0", + "ctime": 1339157556.3313959 + }, + "73cc7a979665786f08b6e46d07cd94380a5b37fe": { + "path": "./images/350px/DSC_3708.jpg", + "preview": { + "350px": "./images/350px/DSC_3708.jpg", + "150px": "./images/350px/.ImageGridCache/150px/73cc7a979665786f08b6e46d07cd94380a5b37fe%20-%20DSC_3708.jpg" + }, + "id": "73cc7a979665786f08b6e46d07cd94380a5b37fe", + "ctime": 1339157555.7505608 + }, + "4ae34f412978d63537b2cedb374923a8829a325c": { + "path": "./images/350px/DSC_3518.jpg", + "preview": { + "350px": "./images/350px/DSC_3518.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4ae34f412978d63537b2cedb374923a8829a325c%20-%20DSC_3518.jpg" + }, + "id": "4ae34f412978d63537b2cedb374923a8829a325c", + "ctime": 1339157557.4530087 + }, + "af2f5e3d12ffb40ed74b53f9bcf8b3aedb0d110d": { + "path": "./images/350px/DSC_3615.jpg", + "preview": { + "350px": "./images/350px/DSC_3615.jpg", + "150px": "./images/350px/.ImageGridCache/150px/af2f5e3d12ffb40ed74b53f9bcf8b3aedb0d110d%20-%20DSC_3615.jpg" + }, + "id": "af2f5e3d12ffb40ed74b53f9bcf8b3aedb0d110d", + "ctime": 1339157556.4916263 + }, + "be1b783c751b8f493b1f92e076a57baf8ba2b7c8": { + "path": "./images/350px/DSC_3607.jpg", + "preview": { + "350px": "./images/350px/DSC_3607.jpg", + "150px": "./images/350px/.ImageGridCache/150px/be1b783c751b8f493b1f92e076a57baf8ba2b7c8%20-%20DSC_3607.jpg" + }, + "id": "be1b783c751b8f493b1f92e076a57baf8ba2b7c8", + "ctime": 1339157556.5817559 + }, + "e15f681d7f11b9b57c169278d99a7930609e086b": { + "path": "./images/350px/DSC_3562.jpg", + "preview": { + "350px": "./images/350px/DSC_3562.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e15f681d7f11b9b57c169278d99a7930609e086b%20-%20DSC_3562.jpg" + }, + "id": "e15f681d7f11b9b57c169278d99a7930609e086b", + "ctime": 1339157557.0223894 + }, + "2f22679ae63873258c779b808946585b468b4707": { + "path": "./images/350px/DSC_3572.jpg", + "preview": { + "350px": "./images/350px/DSC_3572.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2f22679ae63873258c779b808946585b468b4707%20-%20DSC_3572.jpg" + }, + "id": "2f22679ae63873258c779b808946585b468b4707", + "ctime": 1339157556.9122312 + }, + "ab1b37f83a940dc358ddbcf40934d8dbc1f86a21": { + "path": "./images/350px/DSC_3558.jpg", + "preview": { + "350px": "./images/350px/DSC_3558.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ab1b37f83a940dc358ddbcf40934d8dbc1f86a21%20-%20DSC_3558.jpg" + }, + "id": "ab1b37f83a940dc358ddbcf40934d8dbc1f86a21", + "ctime": 1339157557.0924902 + }, + "fd3c1cc9c2a8155704e3cb2ace2dd3fc86b1920d": { + "path": "./images/350px/DSC_3574.jpg", + "preview": { + "350px": "./images/350px/DSC_3574.jpg", + "150px": "./images/350px/.ImageGridCache/150px/fd3c1cc9c2a8155704e3cb2ace2dd3fc86b1920d%20-%20DSC_3574.jpg" + }, + "id": "fd3c1cc9c2a8155704e3cb2ace2dd3fc86b1920d", + "ctime": 1339157556.8721735 + }, + "40253a9f8ff0ecac275851f6db4bf5236d68fd9c": { + "path": "./images/350px/DSC_3578.jpg", + "preview": { + "350px": "./images/350px/DSC_3578.jpg", + "150px": "./images/350px/.ImageGridCache/150px/40253a9f8ff0ecac275851f6db4bf5236d68fd9c%20-%20DSC_3578.jpg" + }, + "id": "40253a9f8ff0ecac275851f6db4bf5236d68fd9c", + "ctime": 1339157556.832116 + }, + "7ced0eefef81ed05df441db2437e7f78bd43c92d": { + "path": "./images/350px/DSC_3590.jpg", + "preview": { + "350px": "./images/350px/DSC_3590.jpg", + "150px": "./images/350px/.ImageGridCache/150px/7ced0eefef81ed05df441db2437e7f78bd43c92d%20-%20DSC_3590.jpg" + }, + "id": "7ced0eefef81ed05df441db2437e7f78bd43c92d", + "ctime": 1339157556.7720294 + }, + "77063b7804590152c6a400fcaf303e632b0aa60f": { + "path": "./images/350px/DSC_3699.jpg", + "preview": { + "350px": "./images/350px/DSC_3699.jpg", + "150px": "./images/350px/.ImageGridCache/150px/77063b7804590152c6a400fcaf303e632b0aa60f%20-%20DSC_3699.jpg" + }, + "id": "77063b7804590152c6a400fcaf303e632b0aa60f", + "ctime": 1339157555.8306758 + }, + "51fb2a161e281eb50f98984720666f95093e8d69": { + "path": "./images/350px/DSC_3535.jpg", + "preview": { + "350px": "./images/350px/DSC_3535.jpg", + "150px": "./images/350px/.ImageGridCache/150px/51fb2a161e281eb50f98984720666f95093e8d69%20-%20DSC_3535.jpg" + }, + "id": "51fb2a161e281eb50f98984720666f95093e8d69", + "ctime": 1339157557.3027928 + }, + "9d8196da0952cb05f5c06f215de6b75ccbbd3f32": { + "path": "./images/350px/DSC_3512.jpg", + "preview": { + "350px": "./images/350px/DSC_3512.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9d8196da0952cb05f5c06f215de6b75ccbbd3f32%20-%20DSC_3512.jpg" + }, + "id": "9d8196da0952cb05f5c06f215de6b75ccbbd3f32", + "ctime": 1339157557.5030806 + }, + "ad0d30f6f601366406774163c2110d1959886def": { + "path": "./images/350px/DSC_3619.jpg", + "preview": { + "350px": "./images/350px/DSC_3619.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ad0d30f6f601366406774163c2110d1959886def%20-%20DSC_3619.jpg" + }, + "id": "ad0d30f6f601366406774163c2110d1959886def", + "ctime": 1339157556.481612 + }, + "dee421b37a77824509c736803dd7d8cac634b565": { + "path": "./images/350px/DSC_3801.jpg", + "preview": { + "350px": "./images/350px/DSC_3801.jpg", + "150px": "./images/350px/.ImageGridCache/150px/dee421b37a77824509c736803dd7d8cac634b565%20-%20DSC_3801.jpg" + }, + "id": "dee421b37a77824509c736803dd7d8cac634b565", + "ctime": 1339157555.1496966 + }, + "9a4ef75e8a2725a422826684ca0ad7d06c384ec4": { + "path": "./images/350px/DSC_3543.jpg", + "preview": { + "350px": "./images/350px/DSC_3543.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9a4ef75e8a2725a422826684ca0ad7d06c384ec4%20-%20DSC_3543.jpg" + }, + "id": "9a4ef75e8a2725a422826684ca0ad7d06c384ec4", + "ctime": 1339157557.2527206 + }, + "cc2076041dc8b22d8b57429bd53f5f2f3bf8d299": { + "path": "./images/350px/DSC_3561.jpg", + "preview": { + "350px": "./images/350px/DSC_3561.jpg", + "150px": "./images/350px/.ImageGridCache/150px/cc2076041dc8b22d8b57429bd53f5f2f3bf8d299%20-%20DSC_3561.jpg" + }, + "id": "cc2076041dc8b22d8b57429bd53f5f2f3bf8d299", + "ctime": 1339157557.032404 + }, + "9de5a6d18b8d3e7e5ff0ccd0b4694a7e1d5641e9": { + "path": "./images/350px/DSC_3815.jpg", + "preview": { + "350px": "./images/350px/DSC_3815.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9de5a6d18b8d3e7e5ff0ccd0b4694a7e1d5641e9%20-%20DSC_3815.jpg" + }, + "id": "9de5a6d18b8d3e7e5ff0ccd0b4694a7e1d5641e9", + "ctime": 1339157555.0395384 + }, + "248d7d13283a04ead31f64e1e5b27187b2b96c01": { + "path": "./images/350px/DSC_3566.jpg", + "preview": { + "350px": "./images/350px/DSC_3566.jpg", + "150px": "./images/350px/.ImageGridCache/150px/248d7d13283a04ead31f64e1e5b27187b2b96c01%20-%20DSC_3566.jpg" + }, + "id": "248d7d13283a04ead31f64e1e5b27187b2b96c01", + "ctime": 1339157556.9923463 + }, + "0c4c930b9694eb62b7331e773cc01c74faa0bcf3": { + "path": "./images/350px/DSC_3545.jpg", + "preview": { + "350px": "./images/350px/DSC_3545.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0c4c930b9694eb62b7331e773cc01c74faa0bcf3%20-%20DSC_3545.jpg" + }, + "id": "0c4c930b9694eb62b7331e773cc01c74faa0bcf3", + "ctime": 1339157557.2226775 + }, + "4f839380237f3dbf0dc8eb3ff76e275a34f3caa4": { + "path": "./images/350px/DSC_3519.jpg", + "preview": { + "350px": "./images/350px/DSC_3519.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4f839380237f3dbf0dc8eb3ff76e275a34f3caa4%20-%20DSC_3519.jpg" + }, + "id": "4f839380237f3dbf0dc8eb3ff76e275a34f3caa4", + "ctime": 1339157557.4429944 + }, + "00cd4b2f48e6b52ce03b8db8653a54855f7d3dc6": { + "path": "./images/350px/DSC_3652.jpg", + "preview": { + "350px": "./images/350px/DSC_3652.jpg", + "150px": "./images/350px/.ImageGridCache/150px/00cd4b2f48e6b52ce03b8db8653a54855f7d3dc6%20-%20DSC_3652.jpg" + }, + "id": "00cd4b2f48e6b52ce03b8db8653a54855f7d3dc6", + "ctime": 1339157556.1611512 + }, + "eb5dfd47648c563cf376fc53b3f62b7038c704dc": { + "path": "./images/350px/DSC_3606.jpg", + "preview": { + "350px": "./images/350px/DSC_3606.jpg", + "150px": "./images/350px/.ImageGridCache/150px/eb5dfd47648c563cf376fc53b3f62b7038c704dc%20-%20DSC_3606.jpg" + }, + "id": "eb5dfd47648c563cf376fc53b3f62b7038c704dc", + "ctime": 1339157556.6017847 + }, + "2b38c04b4339513421cfd1640b3b6de28f94b8ac": { + "path": "./images/350px/DSC_3645.jpg", + "preview": { + "350px": "./images/350px/DSC_3645.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2b38c04b4339513421cfd1640b3b6de28f94b8ac%20-%20DSC_3645.jpg" + }, + "id": "2b38c04b4339513421cfd1640b3b6de28f94b8ac", + "ctime": 1339157556.2112231 + }, + "dd4f8d8ebcb5f452c6b678e890a4982cf893e496": { + "path": "./images/350px/DSC_3701.jpg", + "preview": { + "350px": "./images/350px/DSC_3701.jpg", + "150px": "./images/350px/.ImageGridCache/150px/dd4f8d8ebcb5f452c6b678e890a4982cf893e496%20-%20DSC_3701.jpg" + }, + "id": "dd4f8d8ebcb5f452c6b678e890a4982cf893e496", + "ctime": 1339157555.8206615 + }, + "b6b41b34819189258088d6e471190bf90bb34d25": { + "path": "./images/350px/DSC_3723.jpg", + "preview": { + "350px": "./images/350px/DSC_3723.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b6b41b34819189258088d6e471190bf90bb34d25%20-%20DSC_3723.jpg" + }, + "id": "b6b41b34819189258088d6e471190bf90bb34d25", + "ctime": 1339157555.6303878 + }, + "215074419931fdf9485da3434ef95df8bf3a0e00": { + "path": "./images/350px/DSC_3783.jpg", + "preview": { + "350px": "./images/350px/DSC_3783.jpg", + "150px": "./images/350px/.ImageGridCache/150px/215074419931fdf9485da3434ef95df8bf3a0e00%20-%20DSC_3783.jpg" + }, + "id": "215074419931fdf9485da3434ef95df8bf3a0e00", + "ctime": 1339157555.2398262 + }, + "8c137ee596d7b41e7f4e052412ff83d101138c47": { + "path": "./images/350px/DSC_3787.jpg", + "preview": { + "350px": "./images/350px/DSC_3787.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8c137ee596d7b41e7f4e052412ff83d101138c47%20-%20DSC_3787.jpg" + }, + "id": "8c137ee596d7b41e7f4e052412ff83d101138c47", + "ctime": 1339157555.2197976 + }, + "b9f96e11538bb333361875b749ece295558e7866": { + "path": "./images/350px/DSC_3627.jpg", + "preview": { + "350px": "./images/350px/DSC_3627.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b9f96e11538bb333361875b749ece295558e7866%20-%20DSC_3627.jpg" + }, + "id": "b9f96e11538bb333361875b749ece295558e7866", + "ctime": 1339157556.4014966 + }, + "a588425cb49dbf7baf8c302edb34412019a5e559": { + "path": "./images/350px/DSC_3661.jpg", + "preview": { + "350px": "./images/350px/DSC_3661.jpg", + "150px": "./images/350px/.ImageGridCache/150px/a588425cb49dbf7baf8c302edb34412019a5e559%20-%20DSC_3661.jpg" + }, + "id": "a588425cb49dbf7baf8c302edb34412019a5e559", + "ctime": 1339157556.0810359 + }, + "0189d11981822fc5f528901dec4880d4471aa075": { + "path": "./images/350px/DSC_3576.jpg", + "preview": { + "350px": "./images/350px/DSC_3576.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0189d11981822fc5f528901dec4880d4471aa075%20-%20DSC_3576.jpg" + }, + "id": "0189d11981822fc5f528901dec4880d4471aa075", + "ctime": 1339157556.8421302 + }, + "cfbac021afd77a6aa3edd714c1b98e88f80bcb72": { + "path": "./images/350px/DSC_3530.jpg", + "preview": { + "350px": "./images/350px/DSC_3530.jpg", + "150px": "./images/350px/.ImageGridCache/150px/cfbac021afd77a6aa3edd714c1b98e88f80bcb72%20-%20DSC_3530.jpg" + }, + "id": "cfbac021afd77a6aa3edd714c1b98e88f80bcb72", + "ctime": 1339157557.362879 + }, + "1c347b8d9fd0325d1d30b3797736ae376e35c356": { + "path": "./images/350px/DSC_3631.jpg", + "preview": { + "350px": "./images/350px/DSC_3631.jpg", + "150px": "./images/350px/.ImageGridCache/150px/1c347b8d9fd0325d1d30b3797736ae376e35c356%20-%20DSC_3631.jpg" + }, + "id": "1c347b8d9fd0325d1d30b3797736ae376e35c356", + "ctime": 1339157556.361439 + }, + "e70a45f489afee4e502b288ea329a3aaaa0ec9d9": { + "path": "./images/350px/DSC_3670.jpg", + "preview": { + "350px": "./images/350px/DSC_3670.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e70a45f489afee4e502b288ea329a3aaaa0ec9d9%20-%20DSC_3670.jpg" + }, + "id": "e70a45f489afee4e502b288ea329a3aaaa0ec9d9", + "ctime": 1339157556.010935 + }, + "a960f5e7b3b2a79c3275d9b0de587e2436cb7e87": { + "path": "./images/350px/DSC_3694.jpg", + "preview": { + "350px": "./images/350px/DSC_3694.jpg", + "150px": "./images/350px/.ImageGridCache/150px/a960f5e7b3b2a79c3275d9b0de587e2436cb7e87%20-%20DSC_3694.jpg" + }, + "id": "a960f5e7b3b2a79c3275d9b0de587e2436cb7e87", + "ctime": 1339157555.8807478 + }, + "ef13206121bd9321c2254f8e668ad865ba2766c7": { + "path": "./images/350px/DSC_3569.jpg", + "preview": { + "350px": "./images/350px/DSC_3569.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ef13206121bd9321c2254f8e668ad865ba2766c7%20-%20DSC_3569.jpg" + }, + "id": "ef13206121bd9321c2254f8e668ad865ba2766c7", + "ctime": 1339157556.9522886 + }, + "fb2eafbab8a5c77c80f4a3d41c69a22cf5a7d072": { + "path": "./images/350px/DSC_3753.jpg", + "preview": { + "350px": "./images/350px/DSC_3753.jpg", + "150px": "./images/350px/.ImageGridCache/150px/fb2eafbab8a5c77c80f4a3d41c69a22cf5a7d072%20-%20DSC_3753.jpg" + }, + "id": "fb2eafbab8a5c77c80f4a3d41c69a22cf5a7d072", + "ctime": 1339157555.3700135 + }, + "3e24bcb997c4a66800a545178127d0b7d06be311": { + "path": "./images/350px/DSC_3528.jpg", + "preview": { + "350px": "./images/350px/DSC_3528.jpg", + "150px": "./images/350px/.ImageGridCache/150px/3e24bcb997c4a66800a545178127d0b7d06be311%20-%20DSC_3528.jpg" + }, + "id": "3e24bcb997c4a66800a545178127d0b7d06be311", + "ctime": 1339157557.3728936 + }, + "c29bf6d3609de76d12f8240a26f488200458ade8": { + "path": "./images/350px/DSC_3763.jpg", + "preview": { + "350px": "./images/350px/DSC_3763.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c29bf6d3609de76d12f8240a26f488200458ade8%20-%20DSC_3763.jpg" + }, + "id": "c29bf6d3609de76d12f8240a26f488200458ade8", + "ctime": 1339157555.2898984 + }, + "4f1321fdd51d877186e8b47f8e77ae1b83fe268f": { + "path": "./images/350px/DSC_3711.jpg", + "preview": { + "350px": "./images/350px/DSC_3711.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4f1321fdd51d877186e8b47f8e77ae1b83fe268f%20-%20DSC_3711.jpg" + }, + "id": "4f1321fdd51d877186e8b47f8e77ae1b83fe268f", + "ctime": 1339157555.730532 + }, + "e25a2c75dd4a9faff887a2fe0543ff38be6afe9d": { + "path": "./images/350px/DSC_3751.jpg", + "preview": { + "350px": "./images/350px/DSC_3751.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e25a2c75dd4a9faff887a2fe0543ff38be6afe9d%20-%20DSC_3751.jpg" + }, + "id": "e25a2c75dd4a9faff887a2fe0543ff38be6afe9d", + "ctime": 1339157555.4200854 + }, + "53113f04d89828b6dde03bb731fa04fb1b694b97": { + "path": "./images/350px/DSC_3790.jpg", + "preview": { + "350px": "./images/350px/DSC_3790.jpg", + "150px": "./images/350px/.ImageGridCache/150px/53113f04d89828b6dde03bb731fa04fb1b694b97%20-%20DSC_3790.jpg" + }, + "id": "53113f04d89828b6dde03bb731fa04fb1b694b97", + "ctime": 1339157555.1997688 + }, + "5a6f8fe10dcc591abedf3f98b4d56de3c9732437": { + "path": "./images/350px/DSC_3716.jpg", + "preview": { + "350px": "./images/350px/DSC_3716.jpg", + "150px": "./images/350px/.ImageGridCache/150px/5a6f8fe10dcc591abedf3f98b4d56de3c9732437%20-%20DSC_3716.jpg" + }, + "id": "5a6f8fe10dcc591abedf3f98b4d56de3c9732437", + "ctime": 1339157555.6604311 + }, + "5e34bc6afa051598a410565f753437adb9c9698a": { + "path": "./images/350px/DSC_3794.jpg", + "preview": { + "350px": "./images/350px/DSC_3794.jpg", + "150px": "./images/350px/.ImageGridCache/150px/5e34bc6afa051598a410565f753437adb9c9698a%20-%20DSC_3794.jpg" + }, + "id": "5e34bc6afa051598a410565f753437adb9c9698a", + "ctime": 1339157555.1697254 + }, + "b940912958c7baf5b6c962e2a53418d2ad0a981a": { + "path": "./images/350px/DSC_3571.jpg", + "preview": { + "350px": "./images/350px/DSC_3571.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b940912958c7baf5b6c962e2a53418d2ad0a981a%20-%20DSC_3571.jpg" + }, + "id": "b940912958c7baf5b6c962e2a53418d2ad0a981a", + "ctime": 1339157556.9222455 + }, + "103e1483c94c8583f84d7ec9b57a3ee761023ffc": { + "path": "./images/350px/DSC_3532.jpg", + "preview": { + "350px": "./images/350px/DSC_3532.jpg", + "150px": "./images/350px/.ImageGridCache/150px/103e1483c94c8583f84d7ec9b57a3ee761023ffc%20-%20DSC_3532.jpg" + }, + "id": "103e1483c94c8583f84d7ec9b57a3ee761023ffc", + "ctime": 1339157557.3428502 + }, + "d3af89819356985ff58af45e0be0e42967571b07": { + "path": "./images/350px/DSC_3560.jpg", + "preview": { + "350px": "./images/350px/DSC_3560.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d3af89819356985ff58af45e0be0e42967571b07%20-%20DSC_3560.jpg" + }, + "id": "d3af89819356985ff58af45e0be0e42967571b07", + "ctime": 1339157557.0524328 + }, + "f4c4b1666be5cefb115865bcae058dff4179628a": { + "path": "./images/350px/DSC_3662.jpg", + "preview": { + "350px": "./images/350px/DSC_3662.jpg", + "150px": "./images/350px/.ImageGridCache/150px/f4c4b1666be5cefb115865bcae058dff4179628a%20-%20DSC_3662.jpg" + }, + "id": "f4c4b1666be5cefb115865bcae058dff4179628a", + "ctime": 1339157556.0710216 + }, + "87a689575d7b922dcb36ca5cbf1230867ec6b50a": { + "path": "./images/350px/DSC_3588.jpg", + "preview": { + "350px": "./images/350px/DSC_3588.jpg", + "150px": "./images/350px/.ImageGridCache/150px/87a689575d7b922dcb36ca5cbf1230867ec6b50a%20-%20DSC_3588.jpg" + }, + "id": "87a689575d7b922dcb36ca5cbf1230867ec6b50a", + "ctime": 1339157556.7720294 + }, + "1a0c5c2dc8bb7292523ea469afebdffc0d7df9ce": { + "path": "./images/350px/DSC_3601.jpg", + "preview": { + "350px": "./images/350px/DSC_3601.jpg", + "150px": "./images/350px/.ImageGridCache/150px/1a0c5c2dc8bb7292523ea469afebdffc0d7df9ce%20-%20DSC_3601.jpg" + }, + "id": "1a0c5c2dc8bb7292523ea469afebdffc0d7df9ce", + "ctime": 1339157556.6518567 + }, + "5b6f4cc9037ea5df8b2144dd2f377da2f986263f": { + "path": "./images/350px/DSC_3675.jpg", + "preview": { + "350px": "./images/350px/DSC_3675.jpg", + "150px": "./images/350px/.ImageGridCache/150px/5b6f4cc9037ea5df8b2144dd2f377da2f986263f%20-%20DSC_3675.jpg" + }, + "id": "5b6f4cc9037ea5df8b2144dd2f377da2f986263f", + "ctime": 1339157555.980892 + }, + "c34825a546a3c3d2a903318640c06b20a31594e0": { + "path": "./images/350px/DSC_3592.jpg", + "preview": { + "350px": "./images/350px/DSC_3592.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c34825a546a3c3d2a903318640c06b20a31594e0%20-%20DSC_3592.jpg" + }, + "id": "c34825a546a3c3d2a903318640c06b20a31594e0", + "ctime": 1339157556.7520008 + }, + "084fc81368da052625d176996415baa588e065b7": { + "path": "./images/350px/DSC_3547.jpg", + "preview": { + "350px": "./images/350px/DSC_3547.jpg", + "150px": "./images/350px/.ImageGridCache/150px/084fc81368da052625d176996415baa588e065b7%20-%20DSC_3547.jpg" + }, + "id": "084fc81368da052625d176996415baa588e065b7", + "ctime": 1339157557.1926343 + }, + "9944d0a8bc006337885bf2b3f78f7c3489ce09a8": { + "path": "./images/350px/DSC_3552.jpg", + "preview": { + "350px": "./images/350px/DSC_3552.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9944d0a8bc006337885bf2b3f78f7c3489ce09a8%20-%20DSC_3552.jpg" + }, + "id": "9944d0a8bc006337885bf2b3f78f7c3489ce09a8", + "ctime": 1339157557.1425624 + }, + "ed817d0844a595ca592c91910641168fea01698d": { + "path": "./images/350px/DSC_3766.jpg", + "preview": { + "350px": "./images/350px/DSC_3766.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ed817d0844a595ca592c91910641168fea01698d%20-%20DSC_3766.jpg" + }, + "id": "ed817d0844a595ca592c91910641168fea01698d", + "ctime": 1339157555.2698696 + }, + "efdeaaea84474051c79b0c359c1d648c9101ec93": { + "path": "./images/350px/DSC_3697.jpg", + "preview": { + "350px": "./images/350px/DSC_3697.jpg", + "150px": "./images/350px/.ImageGridCache/150px/efdeaaea84474051c79b0c359c1d648c9101ec93%20-%20DSC_3697.jpg" + }, + "id": "efdeaaea84474051c79b0c359c1d648c9101ec93", + "ctime": 1339157555.8707335 + }, + "db484a95309d521e00e773bc5aa66174eb926736": { + "path": "./images/350px/DSC_3731.jpg", + "preview": { + "350px": "./images/350px/DSC_3731.jpg", + "150px": "./images/350px/.ImageGridCache/150px/db484a95309d521e00e773bc5aa66174eb926736%20-%20DSC_3731.jpg" + }, + "id": "db484a95309d521e00e773bc5aa66174eb926736", + "ctime": 1339157555.560287 + }, + "865aef2863c7be0add1ae63eb6028ed8f6cdfbc0": { + "path": "./images/350px/DSC_3573.jpg", + "preview": { + "350px": "./images/350px/DSC_3573.jpg", + "150px": "./images/350px/.ImageGridCache/150px/865aef2863c7be0add1ae63eb6028ed8f6cdfbc0%20-%20DSC_3573.jpg" + }, + "id": "865aef2863c7be0add1ae63eb6028ed8f6cdfbc0", + "ctime": 1339157556.8922024 + }, + "6a27af782bb1faec0f5e87236936ab33e0a63666": { + "path": "./images/350px/DSC_3559.jpg", + "preview": { + "350px": "./images/350px/DSC_3559.jpg", + "150px": "./images/350px/.ImageGridCache/150px/6a27af782bb1faec0f5e87236936ab33e0a63666%20-%20DSC_3559.jpg" + }, + "id": "6a27af782bb1faec0f5e87236936ab33e0a63666", + "ctime": 1339157557.0724616 + }, + "2cb16d48aecca8582bdf207b3a5ccbf8d146d377": { + "path": "./images/350px/DSC_3506.jpg", + "preview": { + "350px": "./images/350px/DSC_3506.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2cb16d48aecca8582bdf207b3a5ccbf8d146d377%20-%20DSC_3506.jpg" + }, + "id": "2cb16d48aecca8582bdf207b3a5ccbf8d146d377", + "ctime": 1339157557.5731814 + }, + "b28436f4076c310e2161124431a76fbe51de4f02": { + "path": "./images/350px/DSC_3568.jpg", + "preview": { + "350px": "./images/350px/DSC_3568.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b28436f4076c310e2161124431a76fbe51de4f02%20-%20DSC_3568.jpg" + }, + "id": "b28436f4076c310e2161124431a76fbe51de4f02", + "ctime": 1339157556.9723175 + }, + "e24403b61b68ade228cbb7a905ad529ebc5a0d5d": { + "path": "./images/350px/DSC_3756.jpg", + "preview": { + "350px": "./images/350px/DSC_3756.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e24403b61b68ade228cbb7a905ad529ebc5a0d5d%20-%20DSC_3756.jpg" + }, + "id": "e24403b61b68ade228cbb7a905ad529ebc5a0d5d", + "ctime": 1339157555.3299558 + }, + "343fa36ce0eb0bbcf1ec0f26fc64db30062b9cf7": { + "path": "./images/350px/DSC_3602.jpg", + "preview": { + "350px": "./images/350px/DSC_3602.jpg", + "150px": "./images/350px/.ImageGridCache/150px/343fa36ce0eb0bbcf1ec0f26fc64db30062b9cf7%20-%20DSC_3602.jpg" + }, + "id": "343fa36ce0eb0bbcf1ec0f26fc64db30062b9cf7", + "ctime": 1339157556.6318278 + }, + "ac5ffe9eef55ab1acfe4ece727e5611fff64736e": { + "path": "./images/350px/DSC_3581.jpg", + "preview": { + "350px": "./images/350px/DSC_3581.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ac5ffe9eef55ab1acfe4ece727e5611fff64736e%20-%20DSC_3581.jpg" + }, + "id": "ac5ffe9eef55ab1acfe4ece727e5611fff64736e", + "ctime": 1339157556.7920582 + }, + "8cc6ddcd0950aa90e726d3cac0318c5497151802": { + "path": "./images/350px/DSC_3524.jpg", + "preview": { + "350px": "./images/350px/DSC_3524.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8cc6ddcd0950aa90e726d3cac0318c5497151802%20-%20DSC_3524.jpg" + }, + "id": "8cc6ddcd0950aa90e726d3cac0318c5497151802", + "ctime": 1339157557.4029367 + }, + "6d644b5939a5af48357159fb6192358ed840cd5b": { + "path": "./images/350px/DSC_3593.jpg", + "preview": { + "350px": "./images/350px/DSC_3593.jpg", + "150px": "./images/350px/.ImageGridCache/150px/6d644b5939a5af48357159fb6192358ed840cd5b%20-%20DSC_3593.jpg" + }, + "id": "6d644b5939a5af48357159fb6192358ed840cd5b", + "ctime": 1339157556.731972 + }, + "81168febbf7b1cfc42e12f58f1234a7d97bd752e": { + "path": "./images/350px/DSC_3741.jpg", + "preview": { + "350px": "./images/350px/DSC_3741.jpg", + "150px": "./images/350px/.ImageGridCache/150px/81168febbf7b1cfc42e12f58f1234a7d97bd752e%20-%20DSC_3741.jpg" + }, + "id": "81168febbf7b1cfc42e12f58f1234a7d97bd752e", + "ctime": 1339157555.4901862 + }, + "62375d60c740a5fad13739509acbb488b95929db": { + "path": "./images/350px/DSC_3816.jpg", + "preview": { + "350px": "./images/350px/DSC_3816.jpg", + "150px": "./images/350px/.ImageGridCache/150px/62375d60c740a5fad13739509acbb488b95929db%20-%20DSC_3816.jpg" + }, + "id": "62375d60c740a5fad13739509acbb488b95929db", + "ctime": 1339157555.009495 + }, + "561ab8630cb8802d8ca8993928f3417f2d009926": { + "path": "./images/350px/DSC_3614.jpg", + "preview": { + "350px": "./images/350px/DSC_3614.jpg", + "150px": "./images/350px/.ImageGridCache/150px/561ab8630cb8802d8ca8993928f3417f2d009926%20-%20DSC_3614.jpg" + }, + "id": "561ab8630cb8802d8ca8993928f3417f2d009926", + "ctime": 1339157556.5216694 + }, + "4ae58ed1f0ff3ae90144161f74ea83ffe9b399ff": { + "path": "./images/350px/DSC_3650.jpg", + "preview": { + "350px": "./images/350px/DSC_3650.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4ae58ed1f0ff3ae90144161f74ea83ffe9b399ff%20-%20DSC_3650.jpg" + }, + "id": "4ae58ed1f0ff3ae90144161f74ea83ffe9b399ff", + "ctime": 1339157556.18118 + }, + "8b7f0e1bcd5093ccf53614850175999f4ea51614": { + "path": "./images/350px/DSC_3736.jpg", + "preview": { + "350px": "./images/350px/DSC_3736.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8b7f0e1bcd5093ccf53614850175999f4ea51614%20-%20DSC_3736.jpg" + }, + "id": "8b7f0e1bcd5093ccf53614850175999f4ea51614", + "ctime": 1339157555.5302439 + }, + "2a6911830835adfb62756bca6b89155173df2c40": { + "path": "./images/350px/DSC_3503.jpg", + "preview": { + "350px": "./images/350px/DSC_3503.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2a6911830835adfb62756bca6b89155173df2c40%20-%20DSC_3503.jpg" + }, + "id": "2a6911830835adfb62756bca6b89155173df2c40", + "ctime": 1339157557.613239 + }, + "c1c3d63a61297548b66880c8312381dc7daf7ceb": { + "path": "./images/350px/DSC_3659.jpg", + "preview": { + "350px": "./images/350px/DSC_3659.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c1c3d63a61297548b66880c8312381dc7daf7ceb%20-%20DSC_3659.jpg" + }, + "id": "c1c3d63a61297548b66880c8312381dc7daf7ceb", + "ctime": 1339157556.1210935 + }, + "44ff5d7ace9b5cee8c34af97a97b35ac8edb17d4": { + "path": "./images/350px/DSC_3525.jpg", + "preview": { + "350px": "./images/350px/DSC_3525.jpg", + "150px": "./images/350px/.ImageGridCache/150px/44ff5d7ace9b5cee8c34af97a97b35ac8edb17d4%20-%20DSC_3525.jpg" + }, + "id": "44ff5d7ace9b5cee8c34af97a97b35ac8edb17d4", + "ctime": 1339157557.3929224 + }, + "bb028e5a8e2c7656139b5c740bd9d34d2f23790a": { + "path": "./images/350px/DSC_3710.jpg", + "preview": { + "350px": "./images/350px/DSC_3710.jpg", + "150px": "./images/350px/.ImageGridCache/150px/bb028e5a8e2c7656139b5c740bd9d34d2f23790a%20-%20DSC_3710.jpg" + }, + "id": "bb028e5a8e2c7656139b5c740bd9d34d2f23790a", + "ctime": 1339157555.730532 + }, + "454b3e20244240c7f1095d763a9ad9b2217470fd": { + "path": "./images/350px/DSC_3752.jpg", + "preview": { + "350px": "./images/350px/DSC_3752.jpg", + "150px": "./images/350px/.ImageGridCache/150px/454b3e20244240c7f1095d763a9ad9b2217470fd%20-%20DSC_3752.jpg" + }, + "id": "454b3e20244240c7f1095d763a9ad9b2217470fd", + "ctime": 1339157555.4100711 + }, + "63ba28ad920a5d9b21741b54657e61d422bd2943": { + "path": "./images/350px/DSC_3660.jpg", + "preview": { + "350px": "./images/350px/DSC_3660.jpg", + "150px": "./images/350px/.ImageGridCache/150px/63ba28ad920a5d9b21741b54657e61d422bd2943%20-%20DSC_3660.jpg" + }, + "id": "63ba28ad920a5d9b21741b54657e61d422bd2943", + "ctime": 1339157556.1010647 + }, + "22d7c116e9e6961e86d44d0b9be5524279def148": { + "path": "./images/350px/DSC_3807.jpg", + "preview": { + "350px": "./images/350px/DSC_3807.jpg", + "150px": "./images/350px/.ImageGridCache/150px/22d7c116e9e6961e86d44d0b9be5524279def148%20-%20DSC_3807.jpg" + }, + "id": "22d7c116e9e6961e86d44d0b9be5524279def148", + "ctime": 1339157555.129668 + }, + "30c593732188a660f91d526716d6fc3177e8426e": { + "path": "./images/350px/DSC_3640.jpg", + "preview": { + "350px": "./images/350px/DSC_3640.jpg", + "150px": "./images/350px/.ImageGridCache/150px/30c593732188a660f91d526716d6fc3177e8426e%20-%20DSC_3640.jpg" + }, + "id": "30c593732188a660f91d526716d6fc3177e8426e", + "ctime": 1339157556.2713096 + }, + "968b006dd5a13cee38816c14cdc5aa2e21f4cc5c": { + "path": "./images/350px/DSC_3643.jpg", + "preview": { + "350px": "./images/350px/DSC_3643.jpg", + "150px": "./images/350px/.ImageGridCache/150px/968b006dd5a13cee38816c14cdc5aa2e21f4cc5c%20-%20DSC_3643.jpg" + }, + "id": "968b006dd5a13cee38816c14cdc5aa2e21f4cc5c", + "ctime": 1339157556.231252 + }, + "0300bb0a25038baf4b49690254a53e4b52450682": { + "path": "./images/350px/DSC_3685.jpg", + "preview": { + "350px": "./images/350px/DSC_3685.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0300bb0a25038baf4b49690254a53e4b52450682%20-%20DSC_3685.jpg" + }, + "id": "0300bb0a25038baf4b49690254a53e4b52450682", + "ctime": 1339157555.93082 + }, + "9cc7a36f2b0e25d58518386066232bd99d657c2f": { + "path": "./images/350px/DSC_3542.jpg", + "preview": { + "350px": "./images/350px/DSC_3542.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9cc7a36f2b0e25d58518386066232bd99d657c2f%20-%20DSC_3542.jpg" + }, + "id": "9cc7a36f2b0e25d58518386066232bd99d657c2f", + "ctime": 1339157557.2727494 + }, + "3853d3af94dab47757d1eaeb1de2409a5beaefa9": { + "path": "./images/350px/DSC_3626.jpg", + "preview": { + "350px": "./images/350px/DSC_3626.jpg", + "150px": "./images/350px/.ImageGridCache/150px/3853d3af94dab47757d1eaeb1de2409a5beaefa9%20-%20DSC_3626.jpg" + }, + "id": "3853d3af94dab47757d1eaeb1de2409a5beaefa9", + "ctime": 1339157556.43154 + }, + "d6fe7efd25781b72643f6be80a5deed280476da1": { + "path": "./images/350px/DSC_3813.jpg", + "preview": { + "350px": "./images/350px/DSC_3813.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d6fe7efd25781b72643f6be80a5deed280476da1%20-%20DSC_3813.jpg" + }, + "id": "d6fe7efd25781b72643f6be80a5deed280476da1", + "ctime": 1339157555.0595672 + }, + "d08ce07f49247a274d7f58d361da2dd227e106f4": { + "path": "./images/350px/DSC_3637.jpg", + "preview": { + "350px": "./images/350px/DSC_3637.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d08ce07f49247a274d7f58d361da2dd227e106f4%20-%20DSC_3637.jpg" + }, + "id": "d08ce07f49247a274d7f58d361da2dd227e106f4", + "ctime": 1339157556.3013527 + }, + "e28a78f65a060366d9ff587e322fb9e7a640781e": { + "path": "./images/350px/DSC_3546.jpg", + "preview": { + "350px": "./images/350px/DSC_3546.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e28a78f65a060366d9ff587e322fb9e7a640781e%20-%20DSC_3546.jpg" + }, + "id": "e28a78f65a060366d9ff587e322fb9e7a640781e", + "ctime": 1339157557.2026486 + }, + "63156551e3aaf9777a0506890d70f41d2f3ce987": { + "path": "./images/350px/DSC_3628.jpg", + "preview": { + "350px": "./images/350px/DSC_3628.jpg", + "150px": "./images/350px/.ImageGridCache/150px/63156551e3aaf9777a0506890d70f41d2f3ce987%20-%20DSC_3628.jpg" + }, + "id": "63156551e3aaf9777a0506890d70f41d2f3ce987", + "ctime": 1339157556.3814678 + }, + "0813d919a51cf4046b988858b919cac9a05f5d6d": { + "path": "./images/350px/DSC_3730.jpg", + "preview": { + "350px": "./images/350px/DSC_3730.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0813d919a51cf4046b988858b919cac9a05f5d6d%20-%20DSC_3730.jpg" + }, + "id": "0813d919a51cf4046b988858b919cac9a05f5d6d", + "ctime": 1339157555.5803158 + }, + "d5f78b936331ecd255e7a69caf658540925103a4": { + "path": "./images/350px/DSC_3549.jpg", + "preview": { + "350px": "./images/350px/DSC_3549.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d5f78b936331ecd255e7a69caf658540925103a4%20-%20DSC_3549.jpg" + }, + "id": "d5f78b936331ecd255e7a69caf658540925103a4", + "ctime": 1339157557.1525767 + } + } + ] +} diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/00cd4b2f48e6b52ce03b8db8653a54855f7d3dc6 - DSC_3652.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/00cd4b2f48e6b52ce03b8db8653a54855f7d3dc6 - DSC_3652.jpg new file mode 100755 index 00000000..eaa2156a Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/00cd4b2f48e6b52ce03b8db8653a54855f7d3dc6 - DSC_3652.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/0189d11981822fc5f528901dec4880d4471aa075 - DSC_3576.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/0189d11981822fc5f528901dec4880d4471aa075 - DSC_3576.jpg new file mode 100755 index 00000000..c727a64f Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/0189d11981822fc5f528901dec4880d4471aa075 - DSC_3576.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/0300bb0a25038baf4b49690254a53e4b52450682 - DSC_3685.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/0300bb0a25038baf4b49690254a53e4b52450682 - DSC_3685.jpg new file mode 100755 index 00000000..8e24a465 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/0300bb0a25038baf4b49690254a53e4b52450682 - DSC_3685.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/03162bb32ae0468507979d340ec0a45438b809aa - DSC_3755.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/03162bb32ae0468507979d340ec0a45438b809aa - DSC_3755.jpg new file mode 100755 index 00000000..1ffd8a5a Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/03162bb32ae0468507979d340ec0a45438b809aa - DSC_3755.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/0813d919a51cf4046b988858b919cac9a05f5d6d - DSC_3730.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/0813d919a51cf4046b988858b919cac9a05f5d6d - DSC_3730.jpg new file mode 100755 index 00000000..6e5b2645 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/0813d919a51cf4046b988858b919cac9a05f5d6d - DSC_3730.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/084fc81368da052625d176996415baa588e065b7 - DSC_3547.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/084fc81368da052625d176996415baa588e065b7 - DSC_3547.jpg new file mode 100755 index 00000000..0a502809 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/084fc81368da052625d176996415baa588e065b7 - DSC_3547.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/0a7a3f7bbd3c7a0839c4adb67f96f8008397be04 - DSC_3744.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/0a7a3f7bbd3c7a0839c4adb67f96f8008397be04 - DSC_3744.jpg new file mode 100755 index 00000000..58d5c9b8 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/0a7a3f7bbd3c7a0839c4adb67f96f8008397be04 - DSC_3744.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/0c4c930b9694eb62b7331e773cc01c74faa0bcf3 - DSC_3545.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/0c4c930b9694eb62b7331e773cc01c74faa0bcf3 - DSC_3545.jpg new file mode 100755 index 00000000..59bc30f3 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/0c4c930b9694eb62b7331e773cc01c74faa0bcf3 - DSC_3545.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/0efb3029557c7deaa4121bdeaff2506c32ef1662 - DSC_3565.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/0efb3029557c7deaa4121bdeaff2506c32ef1662 - DSC_3565.jpg new file mode 100755 index 00000000..9c6f8f6f Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/0efb3029557c7deaa4121bdeaff2506c32ef1662 - DSC_3565.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/103e1483c94c8583f84d7ec9b57a3ee761023ffc - DSC_3532.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/103e1483c94c8583f84d7ec9b57a3ee761023ffc - DSC_3532.jpg new file mode 100755 index 00000000..89a802e8 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/103e1483c94c8583f84d7ec9b57a3ee761023ffc - DSC_3532.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/13d8d7c28571000105a72094610517e8412c813b - DSC_3611.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/13d8d7c28571000105a72094610517e8412c813b - DSC_3611.jpg new file mode 100755 index 00000000..96d5d411 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/13d8d7c28571000105a72094610517e8412c813b - DSC_3611.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/18a3f4bd958ce00ea810216752072e704c7b5795 - DSC_3509.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/18a3f4bd958ce00ea810216752072e704c7b5795 - DSC_3509.jpg new file mode 100755 index 00000000..bd38a2fc Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/18a3f4bd958ce00ea810216752072e704c7b5795 - DSC_3509.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/1a0c5c2dc8bb7292523ea469afebdffc0d7df9ce - DSC_3601.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/1a0c5c2dc8bb7292523ea469afebdffc0d7df9ce - DSC_3601.jpg new file mode 100755 index 00000000..442871a4 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/1a0c5c2dc8bb7292523ea469afebdffc0d7df9ce - DSC_3601.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/1c1bf9a8974e06a45eaeadf232865d7bd7f424c0 - DSC_3632.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/1c1bf9a8974e06a45eaeadf232865d7bd7f424c0 - DSC_3632.jpg new file mode 100755 index 00000000..a912db28 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/1c1bf9a8974e06a45eaeadf232865d7bd7f424c0 - DSC_3632.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/1c347b8d9fd0325d1d30b3797736ae376e35c356 - DSC_3631.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/1c347b8d9fd0325d1d30b3797736ae376e35c356 - DSC_3631.jpg new file mode 100755 index 00000000..2c4cabc1 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/1c347b8d9fd0325d1d30b3797736ae376e35c356 - DSC_3631.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/215074419931fdf9485da3434ef95df8bf3a0e00 - DSC_3783.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/215074419931fdf9485da3434ef95df8bf3a0e00 - DSC_3783.jpg new file mode 100755 index 00000000..9ce2c6c6 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/215074419931fdf9485da3434ef95df8bf3a0e00 - DSC_3783.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/22d7c116e9e6961e86d44d0b9be5524279def148 - DSC_3807.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/22d7c116e9e6961e86d44d0b9be5524279def148 - DSC_3807.jpg new file mode 100755 index 00000000..a0433063 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/22d7c116e9e6961e86d44d0b9be5524279def148 - DSC_3807.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/248d7d13283a04ead31f64e1e5b27187b2b96c01 - DSC_3566.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/248d7d13283a04ead31f64e1e5b27187b2b96c01 - DSC_3566.jpg new file mode 100755 index 00000000..bb97c6d5 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/248d7d13283a04ead31f64e1e5b27187b2b96c01 - DSC_3566.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/2540533da23b401485af2b14588f2e385c8ce0a5 - DSC_3698.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/2540533da23b401485af2b14588f2e385c8ce0a5 - DSC_3698.jpg new file mode 100755 index 00000000..7bee4ac6 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/2540533da23b401485af2b14588f2e385c8ce0a5 - DSC_3698.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/26172b8447d5b8f3038c5f60269131db4e11b104 - DSC_3653.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/26172b8447d5b8f3038c5f60269131db4e11b104 - DSC_3653.jpg new file mode 100755 index 00000000..fcd55744 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/26172b8447d5b8f3038c5f60269131db4e11b104 - DSC_3653.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/2a6911830835adfb62756bca6b89155173df2c40 - DSC_3503.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/2a6911830835adfb62756bca6b89155173df2c40 - DSC_3503.jpg new file mode 100755 index 00000000..b08c6070 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/2a6911830835adfb62756bca6b89155173df2c40 - DSC_3503.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/2b38c04b4339513421cfd1640b3b6de28f94b8ac - DSC_3645.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/2b38c04b4339513421cfd1640b3b6de28f94b8ac - DSC_3645.jpg new file mode 100755 index 00000000..effeb018 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/2b38c04b4339513421cfd1640b3b6de28f94b8ac - DSC_3645.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/2cb16d48aecca8582bdf207b3a5ccbf8d146d377 - DSC_3506.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/2cb16d48aecca8582bdf207b3a5ccbf8d146d377 - DSC_3506.jpg new file mode 100755 index 00000000..e5d4e506 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/2cb16d48aecca8582bdf207b3a5ccbf8d146d377 - DSC_3506.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/2f22679ae63873258c779b808946585b468b4707 - DSC_3572.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/2f22679ae63873258c779b808946585b468b4707 - DSC_3572.jpg new file mode 100755 index 00000000..c35d253e Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/2f22679ae63873258c779b808946585b468b4707 - DSC_3572.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/30c593732188a660f91d526716d6fc3177e8426e - DSC_3640.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/30c593732188a660f91d526716d6fc3177e8426e - DSC_3640.jpg new file mode 100755 index 00000000..7036bb00 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/30c593732188a660f91d526716d6fc3177e8426e - DSC_3640.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/32fe39dbf722ad06966c047f8b53caff3020e271 - DSC_3714.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/32fe39dbf722ad06966c047f8b53caff3020e271 - DSC_3714.jpg new file mode 100755 index 00000000..b3158313 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/32fe39dbf722ad06966c047f8b53caff3020e271 - DSC_3714.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/343fa36ce0eb0bbcf1ec0f26fc64db30062b9cf7 - DSC_3602.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/343fa36ce0eb0bbcf1ec0f26fc64db30062b9cf7 - DSC_3602.jpg new file mode 100755 index 00000000..39b5ed30 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/343fa36ce0eb0bbcf1ec0f26fc64db30062b9cf7 - DSC_3602.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/3853d3af94dab47757d1eaeb1de2409a5beaefa9 - DSC_3626.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/3853d3af94dab47757d1eaeb1de2409a5beaefa9 - DSC_3626.jpg new file mode 100755 index 00000000..b1597482 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/3853d3af94dab47757d1eaeb1de2409a5beaefa9 - DSC_3626.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/3cceee3b351fcf7f656cacdb28c1161d7ce0e42e - DSC_3534.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/3cceee3b351fcf7f656cacdb28c1161d7ce0e42e - DSC_3534.jpg new file mode 100755 index 00000000..49c882c9 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/3cceee3b351fcf7f656cacdb28c1161d7ce0e42e - DSC_3534.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/3e24bcb997c4a66800a545178127d0b7d06be311 - DSC_3528.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/3e24bcb997c4a66800a545178127d0b7d06be311 - DSC_3528.jpg new file mode 100755 index 00000000..ceee493d Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/3e24bcb997c4a66800a545178127d0b7d06be311 - DSC_3528.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/40253a9f8ff0ecac275851f6db4bf5236d68fd9c - DSC_3578.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/40253a9f8ff0ecac275851f6db4bf5236d68fd9c - DSC_3578.jpg new file mode 100755 index 00000000..82042550 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/40253a9f8ff0ecac275851f6db4bf5236d68fd9c - DSC_3578.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/44ff5d7ace9b5cee8c34af97a97b35ac8edb17d4 - DSC_3525.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/44ff5d7ace9b5cee8c34af97a97b35ac8edb17d4 - DSC_3525.jpg new file mode 100755 index 00000000..6a867ed7 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/44ff5d7ace9b5cee8c34af97a97b35ac8edb17d4 - DSC_3525.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/454b3e20244240c7f1095d763a9ad9b2217470fd - DSC_3752.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/454b3e20244240c7f1095d763a9ad9b2217470fd - DSC_3752.jpg new file mode 100755 index 00000000..044d3a03 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/454b3e20244240c7f1095d763a9ad9b2217470fd - DSC_3752.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/4ae34f412978d63537b2cedb374923a8829a325c - DSC_3518.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/4ae34f412978d63537b2cedb374923a8829a325c - DSC_3518.jpg new file mode 100755 index 00000000..26b998c5 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/4ae34f412978d63537b2cedb374923a8829a325c - DSC_3518.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/4ae58ed1f0ff3ae90144161f74ea83ffe9b399ff - DSC_3650.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/4ae58ed1f0ff3ae90144161f74ea83ffe9b399ff - DSC_3650.jpg new file mode 100755 index 00000000..65568840 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/4ae58ed1f0ff3ae90144161f74ea83ffe9b399ff - DSC_3650.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/4e29e5f8dff699b38c3a281887b1bd4cebb57e04 - DSC_3595.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/4e29e5f8dff699b38c3a281887b1bd4cebb57e04 - DSC_3595.jpg new file mode 100755 index 00000000..d4791289 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/4e29e5f8dff699b38c3a281887b1bd4cebb57e04 - DSC_3595.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/4f1321fdd51d877186e8b47f8e77ae1b83fe268f - DSC_3711.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/4f1321fdd51d877186e8b47f8e77ae1b83fe268f - DSC_3711.jpg new file mode 100755 index 00000000..51f03079 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/4f1321fdd51d877186e8b47f8e77ae1b83fe268f - DSC_3711.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/4f839380237f3dbf0dc8eb3ff76e275a34f3caa4 - DSC_3519.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/4f839380237f3dbf0dc8eb3ff76e275a34f3caa4 - DSC_3519.jpg new file mode 100755 index 00000000..79d1ca1d Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/4f839380237f3dbf0dc8eb3ff76e275a34f3caa4 - DSC_3519.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/51fb2a161e281eb50f98984720666f95093e8d69 - DSC_3535.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/51fb2a161e281eb50f98984720666f95093e8d69 - DSC_3535.jpg new file mode 100755 index 00000000..dab5e072 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/51fb2a161e281eb50f98984720666f95093e8d69 - DSC_3535.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/53113f04d89828b6dde03bb731fa04fb1b694b97 - DSC_3790.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/53113f04d89828b6dde03bb731fa04fb1b694b97 - DSC_3790.jpg new file mode 100755 index 00000000..981c15ce Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/53113f04d89828b6dde03bb731fa04fb1b694b97 - DSC_3790.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/561ab8630cb8802d8ca8993928f3417f2d009926 - DSC_3614.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/561ab8630cb8802d8ca8993928f3417f2d009926 - DSC_3614.jpg new file mode 100755 index 00000000..9317662b Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/561ab8630cb8802d8ca8993928f3417f2d009926 - DSC_3614.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/5a6f8fe10dcc591abedf3f98b4d56de3c9732437 - DSC_3716.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/5a6f8fe10dcc591abedf3f98b4d56de3c9732437 - DSC_3716.jpg new file mode 100755 index 00000000..b5f91364 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/5a6f8fe10dcc591abedf3f98b4d56de3c9732437 - DSC_3716.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/5b6f4cc9037ea5df8b2144dd2f377da2f986263f - DSC_3675.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/5b6f4cc9037ea5df8b2144dd2f377da2f986263f - DSC_3675.jpg new file mode 100755 index 00000000..e888e758 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/5b6f4cc9037ea5df8b2144dd2f377da2f986263f - DSC_3675.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/5c494f9e019709e92ec2d392d8a55f1d2e416ca9 - DSC_3501.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/5c494f9e019709e92ec2d392d8a55f1d2e416ca9 - DSC_3501.jpg new file mode 100755 index 00000000..5de37e8e Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/5c494f9e019709e92ec2d392d8a55f1d2e416ca9 - DSC_3501.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/5e34bc6afa051598a410565f753437adb9c9698a - DSC_3794.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/5e34bc6afa051598a410565f753437adb9c9698a - DSC_3794.jpg new file mode 100755 index 00000000..bdf85adc Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/5e34bc6afa051598a410565f753437adb9c9698a - DSC_3794.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/62375d60c740a5fad13739509acbb488b95929db - DSC_3816.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/62375d60c740a5fad13739509acbb488b95929db - DSC_3816.jpg new file mode 100755 index 00000000..09b2fd0f Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/62375d60c740a5fad13739509acbb488b95929db - DSC_3816.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/63156551e3aaf9777a0506890d70f41d2f3ce987 - DSC_3628.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/63156551e3aaf9777a0506890d70f41d2f3ce987 - DSC_3628.jpg new file mode 100755 index 00000000..691ba476 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/63156551e3aaf9777a0506890d70f41d2f3ce987 - DSC_3628.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/63ba28ad920a5d9b21741b54657e61d422bd2943 - DSC_3660.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/63ba28ad920a5d9b21741b54657e61d422bd2943 - DSC_3660.jpg new file mode 100755 index 00000000..61602ac3 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/63ba28ad920a5d9b21741b54657e61d422bd2943 - DSC_3660.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/68ca888cb315a3d2a801e74ba0a8d2f6d3ca3838 - DSC_3656.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/68ca888cb315a3d2a801e74ba0a8d2f6d3ca3838 - DSC_3656.jpg new file mode 100755 index 00000000..72b74f5d Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/68ca888cb315a3d2a801e74ba0a8d2f6d3ca3838 - DSC_3656.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/6a27af782bb1faec0f5e87236936ab33e0a63666 - DSC_3559.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/6a27af782bb1faec0f5e87236936ab33e0a63666 - DSC_3559.jpg new file mode 100755 index 00000000..3194e9ea Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/6a27af782bb1faec0f5e87236936ab33e0a63666 - DSC_3559.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/6d644b5939a5af48357159fb6192358ed840cd5b - DSC_3593.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/6d644b5939a5af48357159fb6192358ed840cd5b - DSC_3593.jpg new file mode 100755 index 00000000..950156ec Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/6d644b5939a5af48357159fb6192358ed840cd5b - DSC_3593.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/70bcbbd3b3b62c804ba5c69d3e788774d6167147 - DSC_3575.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/70bcbbd3b3b62c804ba5c69d3e788774d6167147 - DSC_3575.jpg new file mode 100755 index 00000000..6483a45e Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/70bcbbd3b3b62c804ba5c69d3e788774d6167147 - DSC_3575.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/73cc7a979665786f08b6e46d07cd94380a5b37fe - DSC_3708.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/73cc7a979665786f08b6e46d07cd94380a5b37fe - DSC_3708.jpg new file mode 100755 index 00000000..dbfebd99 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/73cc7a979665786f08b6e46d07cd94380a5b37fe - DSC_3708.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/75373d28daf6451f6a8d4af86da34be009d10bc7 - DSC_3722.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/75373d28daf6451f6a8d4af86da34be009d10bc7 - DSC_3722.jpg new file mode 100755 index 00000000..93b5a7ba Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/75373d28daf6451f6a8d4af86da34be009d10bc7 - DSC_3722.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/77063b7804590152c6a400fcaf303e632b0aa60f - DSC_3699.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/77063b7804590152c6a400fcaf303e632b0aa60f - DSC_3699.jpg new file mode 100755 index 00000000..2b2e6011 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/77063b7804590152c6a400fcaf303e632b0aa60f - DSC_3699.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/777f053cf3f6103a434914da32e7af7b757d1cc0 - DSC_3812.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/777f053cf3f6103a434914da32e7af7b757d1cc0 - DSC_3812.jpg new file mode 100755 index 00000000..f5a6395b Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/777f053cf3f6103a434914da32e7af7b757d1cc0 - DSC_3812.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/7801dd0ab5e839a437555db81a8cfdfb656905cf - DSC_3586.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/7801dd0ab5e839a437555db81a8cfdfb656905cf - DSC_3586.jpg new file mode 100755 index 00000000..1f47fec2 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/7801dd0ab5e839a437555db81a8cfdfb656905cf - DSC_3586.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/7c6863909e0727583d3125071afc94f158804bc0 - DSC_3733.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/7c6863909e0727583d3125071afc94f158804bc0 - DSC_3733.jpg new file mode 100755 index 00000000..07b20efd Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/7c6863909e0727583d3125071afc94f158804bc0 - DSC_3733.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/7ced0eefef81ed05df441db2437e7f78bd43c92d - DSC_3590.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/7ced0eefef81ed05df441db2437e7f78bd43c92d - DSC_3590.jpg new file mode 100755 index 00000000..4ef8a0aa Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/7ced0eefef81ed05df441db2437e7f78bd43c92d - DSC_3590.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/7d1885c2b1c6428ed66d5ba78f5bbab9d6dfca82 - DSC_3605.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/7d1885c2b1c6428ed66d5ba78f5bbab9d6dfca82 - DSC_3605.jpg new file mode 100755 index 00000000..5e3791f0 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/7d1885c2b1c6428ed66d5ba78f5bbab9d6dfca82 - DSC_3605.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/81168febbf7b1cfc42e12f58f1234a7d97bd752e - DSC_3741.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/81168febbf7b1cfc42e12f58f1234a7d97bd752e - DSC_3741.jpg new file mode 100755 index 00000000..aa1fd814 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/81168febbf7b1cfc42e12f58f1234a7d97bd752e - DSC_3741.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/853c9839db3cc9e6cca1bbdf8d6e3287958073c7 - DSC_3757.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/853c9839db3cc9e6cca1bbdf8d6e3287958073c7 - DSC_3757.jpg new file mode 100755 index 00000000..d5e2779e Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/853c9839db3cc9e6cca1bbdf8d6e3287958073c7 - DSC_3757.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/865aef2863c7be0add1ae63eb6028ed8f6cdfbc0 - DSC_3573.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/865aef2863c7be0add1ae63eb6028ed8f6cdfbc0 - DSC_3573.jpg new file mode 100755 index 00000000..ad5edd38 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/865aef2863c7be0add1ae63eb6028ed8f6cdfbc0 - DSC_3573.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/8703e98633a09faa402a799194d9b93b7991e449 - DSC_3666.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/8703e98633a09faa402a799194d9b93b7991e449 - DSC_3666.jpg new file mode 100755 index 00000000..43f50a12 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/8703e98633a09faa402a799194d9b93b7991e449 - DSC_3666.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/87a689575d7b922dcb36ca5cbf1230867ec6b50a - DSC_3588.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/87a689575d7b922dcb36ca5cbf1230867ec6b50a - DSC_3588.jpg new file mode 100755 index 00000000..5bbce871 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/87a689575d7b922dcb36ca5cbf1230867ec6b50a - DSC_3588.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/8841793c1b83dd663e4c15c0f619cfd1fde582ff - DSC_3517.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/8841793c1b83dd663e4c15c0f619cfd1fde582ff - DSC_3517.jpg new file mode 100755 index 00000000..ea4ac2c3 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/8841793c1b83dd663e4c15c0f619cfd1fde582ff - DSC_3517.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/89f6d82d64e2f1451ade39101a63e79be3c21668 - DSC_3537.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/89f6d82d64e2f1451ade39101a63e79be3c21668 - DSC_3537.jpg new file mode 100755 index 00000000..dc2e4f7b Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/89f6d82d64e2f1451ade39101a63e79be3c21668 - DSC_3537.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/8b7f0e1bcd5093ccf53614850175999f4ea51614 - DSC_3736.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/8b7f0e1bcd5093ccf53614850175999f4ea51614 - DSC_3736.jpg new file mode 100755 index 00000000..38c72f58 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/8b7f0e1bcd5093ccf53614850175999f4ea51614 - DSC_3736.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/8bb025a803af827dd389a265895294fdb06765c1 - DSC_3522.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/8bb025a803af827dd389a265895294fdb06765c1 - DSC_3522.jpg new file mode 100755 index 00000000..ce2171d7 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/8bb025a803af827dd389a265895294fdb06765c1 - DSC_3522.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/8c137ee596d7b41e7f4e052412ff83d101138c47 - DSC_3787.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/8c137ee596d7b41e7f4e052412ff83d101138c47 - DSC_3787.jpg new file mode 100755 index 00000000..b78856a4 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/8c137ee596d7b41e7f4e052412ff83d101138c47 - DSC_3787.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/8cc6ddcd0950aa90e726d3cac0318c5497151802 - DSC_3524.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/8cc6ddcd0950aa90e726d3cac0318c5497151802 - DSC_3524.jpg new file mode 100755 index 00000000..9522de47 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/8cc6ddcd0950aa90e726d3cac0318c5497151802 - DSC_3524.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/8ee0ab33ace2d227d9077aa5dc4ac4b25bff5445 - DSC_3781.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/8ee0ab33ace2d227d9077aa5dc4ac4b25bff5445 - DSC_3781.jpg new file mode 100755 index 00000000..07f511d2 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/8ee0ab33ace2d227d9077aa5dc4ac4b25bff5445 - DSC_3781.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/8fb694920ddc9e2682c7091ec09a855ed394980d - DSC_3641.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/8fb694920ddc9e2682c7091ec09a855ed394980d - DSC_3641.jpg new file mode 100755 index 00000000..63f11b36 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/8fb694920ddc9e2682c7091ec09a855ed394980d - DSC_3641.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/923e297a7df72bb9bd242008114e8a4ce557abdf - DSC_3677.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/923e297a7df72bb9bd242008114e8a4ce557abdf - DSC_3677.jpg new file mode 100755 index 00000000..3d1ed1ed Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/923e297a7df72bb9bd242008114e8a4ce557abdf - DSC_3677.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/929da4b36039bcdd2c80d7903db47ffbcd568902 - DSC_3712.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/929da4b36039bcdd2c80d7903db47ffbcd568902 - DSC_3712.jpg new file mode 100755 index 00000000..d41d2e46 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/929da4b36039bcdd2c80d7903db47ffbcd568902 - DSC_3712.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/968b006dd5a13cee38816c14cdc5aa2e21f4cc5c - DSC_3643.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/968b006dd5a13cee38816c14cdc5aa2e21f4cc5c - DSC_3643.jpg new file mode 100755 index 00000000..2862fca7 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/968b006dd5a13cee38816c14cdc5aa2e21f4cc5c - DSC_3643.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/9944d0a8bc006337885bf2b3f78f7c3489ce09a8 - DSC_3552.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/9944d0a8bc006337885bf2b3f78f7c3489ce09a8 - DSC_3552.jpg new file mode 100755 index 00000000..56a28eb0 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/9944d0a8bc006337885bf2b3f78f7c3489ce09a8 - DSC_3552.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/99ecaf0b098e4543056eefd59d39c582e47f9d6b - DSC_3693.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/99ecaf0b098e4543056eefd59d39c582e47f9d6b - DSC_3693.jpg new file mode 100755 index 00000000..d26322db Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/99ecaf0b098e4543056eefd59d39c582e47f9d6b - DSC_3693.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/9a4ef75e8a2725a422826684ca0ad7d06c384ec4 - DSC_3543.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/9a4ef75e8a2725a422826684ca0ad7d06c384ec4 - DSC_3543.jpg new file mode 100755 index 00000000..8165708a Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/9a4ef75e8a2725a422826684ca0ad7d06c384ec4 - DSC_3543.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/9cc7a36f2b0e25d58518386066232bd99d657c2f - DSC_3542.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/9cc7a36f2b0e25d58518386066232bd99d657c2f - DSC_3542.jpg new file mode 100755 index 00000000..177aa161 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/9cc7a36f2b0e25d58518386066232bd99d657c2f - DSC_3542.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/9d8196da0952cb05f5c06f215de6b75ccbbd3f32 - DSC_3512.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/9d8196da0952cb05f5c06f215de6b75ccbbd3f32 - DSC_3512.jpg new file mode 100755 index 00000000..6cfcf0d0 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/9d8196da0952cb05f5c06f215de6b75ccbbd3f32 - DSC_3512.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/9da91758f3588a346a2c2747f11ab1c386d19cae - DSC_3703.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/9da91758f3588a346a2c2747f11ab1c386d19cae - DSC_3703.jpg new file mode 100755 index 00000000..9ce64d1d Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/9da91758f3588a346a2c2747f11ab1c386d19cae - DSC_3703.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/9de5a6d18b8d3e7e5ff0ccd0b4694a7e1d5641e9 - DSC_3815.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/9de5a6d18b8d3e7e5ff0ccd0b4694a7e1d5641e9 - DSC_3815.jpg new file mode 100755 index 00000000..32ffec98 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/9de5a6d18b8d3e7e5ff0ccd0b4694a7e1d5641e9 - DSC_3815.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/a116aa6f2b61497585704f0afcdd2cccdbe352ec - DSC_3553.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/a116aa6f2b61497585704f0afcdd2cccdbe352ec - DSC_3553.jpg new file mode 100755 index 00000000..a631e860 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/a116aa6f2b61497585704f0afcdd2cccdbe352ec - DSC_3553.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/a432d915e9282caa8814a5877137f489d73caf0c - DSC_3633.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/a432d915e9282caa8814a5877137f489d73caf0c - DSC_3633.jpg new file mode 100755 index 00000000..213afed9 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/a432d915e9282caa8814a5877137f489d73caf0c - DSC_3633.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/a588425cb49dbf7baf8c302edb34412019a5e559 - DSC_3661.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/a588425cb49dbf7baf8c302edb34412019a5e559 - DSC_3661.jpg new file mode 100755 index 00000000..e45cc9dc Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/a588425cb49dbf7baf8c302edb34412019a5e559 - DSC_3661.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/a960f5e7b3b2a79c3275d9b0de587e2436cb7e87 - DSC_3694.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/a960f5e7b3b2a79c3275d9b0de587e2436cb7e87 - DSC_3694.jpg new file mode 100755 index 00000000..4d60ba15 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/a960f5e7b3b2a79c3275d9b0de587e2436cb7e87 - DSC_3694.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/ab1b37f83a940dc358ddbcf40934d8dbc1f86a21 - DSC_3558.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/ab1b37f83a940dc358ddbcf40934d8dbc1f86a21 - DSC_3558.jpg new file mode 100755 index 00000000..b3707605 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/ab1b37f83a940dc358ddbcf40934d8dbc1f86a21 - DSC_3558.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/ac5ffe9eef55ab1acfe4ece727e5611fff64736e - DSC_3581.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/ac5ffe9eef55ab1acfe4ece727e5611fff64736e - DSC_3581.jpg new file mode 100755 index 00000000..5e247f35 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/ac5ffe9eef55ab1acfe4ece727e5611fff64736e - DSC_3581.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/ac6c5f039262643496583b2a5756793939199abf - DSC_3594.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/ac6c5f039262643496583b2a5756793939199abf - DSC_3594.jpg new file mode 100755 index 00000000..f933ac44 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/ac6c5f039262643496583b2a5756793939199abf - DSC_3594.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/ad0d30f6f601366406774163c2110d1959886def - DSC_3619.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/ad0d30f6f601366406774163c2110d1959886def - DSC_3619.jpg new file mode 100755 index 00000000..a8df790d Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/ad0d30f6f601366406774163c2110d1959886def - DSC_3619.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/ae6e160c5c449181b78822babddb82bb5f62fde7 - DSC_3793.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/ae6e160c5c449181b78822babddb82bb5f62fde7 - DSC_3793.jpg new file mode 100755 index 00000000..70cc8b58 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/ae6e160c5c449181b78822babddb82bb5f62fde7 - DSC_3793.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/aedd7fb5ed381b0f6baa34c724eb42ecb17dd02b - DSC_3673.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/aedd7fb5ed381b0f6baa34c724eb42ecb17dd02b - DSC_3673.jpg new file mode 100755 index 00000000..31f25077 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/aedd7fb5ed381b0f6baa34c724eb42ecb17dd02b - DSC_3673.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/af1fcb733024ffda0ae638bfc881ba83b868d2be - DSC_3682.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/af1fcb733024ffda0ae638bfc881ba83b868d2be - DSC_3682.jpg new file mode 100755 index 00000000..dfebd91f Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/af1fcb733024ffda0ae638bfc881ba83b868d2be - DSC_3682.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/af2f5e3d12ffb40ed74b53f9bcf8b3aedb0d110d - DSC_3615.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/af2f5e3d12ffb40ed74b53f9bcf8b3aedb0d110d - DSC_3615.jpg new file mode 100755 index 00000000..2d16d042 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/af2f5e3d12ffb40ed74b53f9bcf8b3aedb0d110d - DSC_3615.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/b1a9dc4a268212e97d05791731aea6f91bef84de - DSC_3598.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/b1a9dc4a268212e97d05791731aea6f91bef84de - DSC_3598.jpg new file mode 100755 index 00000000..00a9b054 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/b1a9dc4a268212e97d05791731aea6f91bef84de - DSC_3598.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/b28436f4076c310e2161124431a76fbe51de4f02 - DSC_3568.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/b28436f4076c310e2161124431a76fbe51de4f02 - DSC_3568.jpg new file mode 100755 index 00000000..6c3fb2fe Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/b28436f4076c310e2161124431a76fbe51de4f02 - DSC_3568.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/b34ace0518a595880d12228d784656fd385a218e - DSC_3613.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/b34ace0518a595880d12228d784656fd385a218e - DSC_3613.jpg new file mode 100755 index 00000000..97866446 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/b34ace0518a595880d12228d784656fd385a218e - DSC_3613.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/b3b184296bea88a8fa72d5f4861973a8701dea01 - DSC_3608.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/b3b184296bea88a8fa72d5f4861973a8701dea01 - DSC_3608.jpg new file mode 100755 index 00000000..657eb6b2 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/b3b184296bea88a8fa72d5f4861973a8701dea01 - DSC_3608.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/b5b43cfb3c2de2f6637f52d7b5de0c0723967b8c - DSC_3737.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/b5b43cfb3c2de2f6637f52d7b5de0c0723967b8c - DSC_3737.jpg new file mode 100755 index 00000000..ecbd4c88 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/b5b43cfb3c2de2f6637f52d7b5de0c0723967b8c - DSC_3737.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/b6b41b34819189258088d6e471190bf90bb34d25 - DSC_3723.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/b6b41b34819189258088d6e471190bf90bb34d25 - DSC_3723.jpg new file mode 100755 index 00000000..ab0c3aa2 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/b6b41b34819189258088d6e471190bf90bb34d25 - DSC_3723.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/b82dd5935b472d7128d5eb3e7ef6ec91cab7b004 - DSC_3648.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/b82dd5935b472d7128d5eb3e7ef6ec91cab7b004 - DSC_3648.jpg new file mode 100755 index 00000000..0bc08885 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/b82dd5935b472d7128d5eb3e7ef6ec91cab7b004 - DSC_3648.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/b8fe169b76d12dd960e5f81c6489b9b2a0f009bd - DSC_3599.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/b8fe169b76d12dd960e5f81c6489b9b2a0f009bd - DSC_3599.jpg new file mode 100755 index 00000000..00228264 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/b8fe169b76d12dd960e5f81c6489b9b2a0f009bd - DSC_3599.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/b940912958c7baf5b6c962e2a53418d2ad0a981a - DSC_3571.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/b940912958c7baf5b6c962e2a53418d2ad0a981a - DSC_3571.jpg new file mode 100755 index 00000000..3eb4092e Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/b940912958c7baf5b6c962e2a53418d2ad0a981a - DSC_3571.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/b9f96e11538bb333361875b749ece295558e7866 - DSC_3627.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/b9f96e11538bb333361875b749ece295558e7866 - DSC_3627.jpg new file mode 100755 index 00000000..e4897637 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/b9f96e11538bb333361875b749ece295558e7866 - DSC_3627.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/bb028e5a8e2c7656139b5c740bd9d34d2f23790a - DSC_3710.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/bb028e5a8e2c7656139b5c740bd9d34d2f23790a - DSC_3710.jpg new file mode 100755 index 00000000..7bb96397 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/bb028e5a8e2c7656139b5c740bd9d34d2f23790a - DSC_3710.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/bd2a4d7da462256c6fb3a80131532b1e3a5d9b42 - DSC_3555.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/bd2a4d7da462256c6fb3a80131532b1e3a5d9b42 - DSC_3555.jpg new file mode 100755 index 00000000..36b8bd5b Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/bd2a4d7da462256c6fb3a80131532b1e3a5d9b42 - DSC_3555.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/be1b783c751b8f493b1f92e076a57baf8ba2b7c8 - DSC_3607.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/be1b783c751b8f493b1f92e076a57baf8ba2b7c8 - DSC_3607.jpg new file mode 100755 index 00000000..52b4ec6e Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/be1b783c751b8f493b1f92e076a57baf8ba2b7c8 - DSC_3607.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/c0a4e57deeff4042d1bf3436f0dad231b05a8c17 - DSC_3624.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/c0a4e57deeff4042d1bf3436f0dad231b05a8c17 - DSC_3624.jpg new file mode 100755 index 00000000..ff2f2b40 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/c0a4e57deeff4042d1bf3436f0dad231b05a8c17 - DSC_3624.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/c1c3d63a61297548b66880c8312381dc7daf7ceb - DSC_3659.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/c1c3d63a61297548b66880c8312381dc7daf7ceb - DSC_3659.jpg new file mode 100755 index 00000000..f6affe50 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/c1c3d63a61297548b66880c8312381dc7daf7ceb - DSC_3659.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/c29bf6d3609de76d12f8240a26f488200458ade8 - DSC_3763.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/c29bf6d3609de76d12f8240a26f488200458ade8 - DSC_3763.jpg new file mode 100755 index 00000000..d3402ec8 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/c29bf6d3609de76d12f8240a26f488200458ade8 - DSC_3763.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/c34825a546a3c3d2a903318640c06b20a31594e0 - DSC_3592.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/c34825a546a3c3d2a903318640c06b20a31594e0 - DSC_3592.jpg new file mode 100755 index 00000000..754ce75c Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/c34825a546a3c3d2a903318640c06b20a31594e0 - DSC_3592.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/c9669e076bee492ad499a83eaf71b173155991f2 - DSC_3623.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/c9669e076bee492ad499a83eaf71b173155991f2 - DSC_3623.jpg new file mode 100755 index 00000000..822ba1f7 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/c9669e076bee492ad499a83eaf71b173155991f2 - DSC_3623.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/caf04703ac0a884df5de75bf1f12c7611132c0e9 - DSC_3713.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/caf04703ac0a884df5de75bf1f12c7611132c0e9 - DSC_3713.jpg new file mode 100755 index 00000000..4aebd2dd Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/caf04703ac0a884df5de75bf1f12c7611132c0e9 - DSC_3713.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/cb0a2e9713f45909d1f1f2516cb590e3f1acf534 - DSC_3548.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/cb0a2e9713f45909d1f1f2516cb590e3f1acf534 - DSC_3548.jpg new file mode 100755 index 00000000..6c2efed9 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/cb0a2e9713f45909d1f1f2516cb590e3f1acf534 - DSC_3548.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/cc2076041dc8b22d8b57429bd53f5f2f3bf8d299 - DSC_3561.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/cc2076041dc8b22d8b57429bd53f5f2f3bf8d299 - DSC_3561.jpg new file mode 100755 index 00000000..523f0f8f Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/cc2076041dc8b22d8b57429bd53f5f2f3bf8d299 - DSC_3561.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/cfbac021afd77a6aa3edd714c1b98e88f80bcb72 - DSC_3530.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/cfbac021afd77a6aa3edd714c1b98e88f80bcb72 - DSC_3530.jpg new file mode 100755 index 00000000..f5be8e83 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/cfbac021afd77a6aa3edd714c1b98e88f80bcb72 - DSC_3530.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/d08ce07f49247a274d7f58d361da2dd227e106f4 - DSC_3637.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/d08ce07f49247a274d7f58d361da2dd227e106f4 - DSC_3637.jpg new file mode 100755 index 00000000..96892050 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/d08ce07f49247a274d7f58d361da2dd227e106f4 - DSC_3637.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/d28cb25a0d5729594b89740d6b61ae00556fe1fb - DSC_3508.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/d28cb25a0d5729594b89740d6b61ae00556fe1fb - DSC_3508.jpg new file mode 100755 index 00000000..673a8579 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/d28cb25a0d5729594b89740d6b61ae00556fe1fb - DSC_3508.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/d3af89819356985ff58af45e0be0e42967571b07 - DSC_3560.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/d3af89819356985ff58af45e0be0e42967571b07 - DSC_3560.jpg new file mode 100755 index 00000000..73cf1bc6 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/d3af89819356985ff58af45e0be0e42967571b07 - DSC_3560.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/d5746ea5fa662a8ea939d3025542c822a765bc82 - DSC_3705.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/d5746ea5fa662a8ea939d3025542c822a765bc82 - DSC_3705.jpg new file mode 100755 index 00000000..83aa7ba4 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/d5746ea5fa662a8ea939d3025542c822a765bc82 - DSC_3705.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/d5f78b936331ecd255e7a69caf658540925103a4 - DSC_3549.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/d5f78b936331ecd255e7a69caf658540925103a4 - DSC_3549.jpg new file mode 100755 index 00000000..848d6de8 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/d5f78b936331ecd255e7a69caf658540925103a4 - DSC_3549.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/d6fe7efd25781b72643f6be80a5deed280476da1 - DSC_3813.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/d6fe7efd25781b72643f6be80a5deed280476da1 - DSC_3813.jpg new file mode 100755 index 00000000..e1dd6061 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/d6fe7efd25781b72643f6be80a5deed280476da1 - DSC_3813.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/d8aa1abff224e99fe5b9b7cb54750051c81469ad - DSC_3664.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/d8aa1abff224e99fe5b9b7cb54750051c81469ad - DSC_3664.jpg new file mode 100755 index 00000000..7069c70a Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/d8aa1abff224e99fe5b9b7cb54750051c81469ad - DSC_3664.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/db484a95309d521e00e773bc5aa66174eb926736 - DSC_3731.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/db484a95309d521e00e773bc5aa66174eb926736 - DSC_3731.jpg new file mode 100755 index 00000000..3707b99d Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/db484a95309d521e00e773bc5aa66174eb926736 - DSC_3731.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/dcb47754e398f86ddaa56dae399ab3e5cb8224d1 - DSC_3511.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/dcb47754e398f86ddaa56dae399ab3e5cb8224d1 - DSC_3511.jpg new file mode 100755 index 00000000..2a955e3f Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/dcb47754e398f86ddaa56dae399ab3e5cb8224d1 - DSC_3511.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/dd4f8d8ebcb5f452c6b678e890a4982cf893e496 - DSC_3701.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/dd4f8d8ebcb5f452c6b678e890a4982cf893e496 - DSC_3701.jpg new file mode 100755 index 00000000..4cf17e54 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/dd4f8d8ebcb5f452c6b678e890a4982cf893e496 - DSC_3701.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/de81dfd41412595d95e779e8b64d6e3a81c14cd1 - DSC_3727.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/de81dfd41412595d95e779e8b64d6e3a81c14cd1 - DSC_3727.jpg new file mode 100755 index 00000000..3cd0be60 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/de81dfd41412595d95e779e8b64d6e3a81c14cd1 - DSC_3727.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/dee421b37a77824509c736803dd7d8cac634b565 - DSC_3801.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/dee421b37a77824509c736803dd7d8cac634b565 - DSC_3801.jpg new file mode 100755 index 00000000..8c3cecee Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/dee421b37a77824509c736803dd7d8cac634b565 - DSC_3801.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/e15f681d7f11b9b57c169278d99a7930609e086b - DSC_3562.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/e15f681d7f11b9b57c169278d99a7930609e086b - DSC_3562.jpg new file mode 100755 index 00000000..4cc5c579 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/e15f681d7f11b9b57c169278d99a7930609e086b - DSC_3562.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/e24403b61b68ade228cbb7a905ad529ebc5a0d5d - DSC_3756.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/e24403b61b68ade228cbb7a905ad529ebc5a0d5d - DSC_3756.jpg new file mode 100755 index 00000000..81315d35 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/e24403b61b68ade228cbb7a905ad529ebc5a0d5d - DSC_3756.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/e25a2c75dd4a9faff887a2fe0543ff38be6afe9d - DSC_3751.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/e25a2c75dd4a9faff887a2fe0543ff38be6afe9d - DSC_3751.jpg new file mode 100755 index 00000000..c52af3fe Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/e25a2c75dd4a9faff887a2fe0543ff38be6afe9d - DSC_3751.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/e28a78f65a060366d9ff587e322fb9e7a640781e - DSC_3546.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/e28a78f65a060366d9ff587e322fb9e7a640781e - DSC_3546.jpg new file mode 100755 index 00000000..06c653fe Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/e28a78f65a060366d9ff587e322fb9e7a640781e - DSC_3546.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/e3cae95b7238b56f6049e13deb8b2d32143e9f00 - DSC_3504.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/e3cae95b7238b56f6049e13deb8b2d32143e9f00 - DSC_3504.jpg new file mode 100755 index 00000000..23051567 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/e3cae95b7238b56f6049e13deb8b2d32143e9f00 - DSC_3504.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/e5ed9c0002505b7a40878ebb95bab2202c20a1f4 - DSC_3638.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/e5ed9c0002505b7a40878ebb95bab2202c20a1f4 - DSC_3638.jpg new file mode 100755 index 00000000..2178c040 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/e5ed9c0002505b7a40878ebb95bab2202c20a1f4 - DSC_3638.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/e70a45f489afee4e502b288ea329a3aaaa0ec9d9 - DSC_3670.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/e70a45f489afee4e502b288ea329a3aaaa0ec9d9 - DSC_3670.jpg new file mode 100755 index 00000000..8a77974c Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/e70a45f489afee4e502b288ea329a3aaaa0ec9d9 - DSC_3670.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/eb5dfd47648c563cf376fc53b3f62b7038c704dc - DSC_3606.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/eb5dfd47648c563cf376fc53b3f62b7038c704dc - DSC_3606.jpg new file mode 100755 index 00000000..de23d362 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/eb5dfd47648c563cf376fc53b3f62b7038c704dc - DSC_3606.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/ed817d0844a595ca592c91910641168fea01698d - DSC_3766.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/ed817d0844a595ca592c91910641168fea01698d - DSC_3766.jpg new file mode 100755 index 00000000..517f8b81 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/ed817d0844a595ca592c91910641168fea01698d - DSC_3766.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/ef13206121bd9321c2254f8e668ad865ba2766c7 - DSC_3569.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/ef13206121bd9321c2254f8e668ad865ba2766c7 - DSC_3569.jpg new file mode 100755 index 00000000..73ce3506 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/ef13206121bd9321c2254f8e668ad865ba2766c7 - DSC_3569.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/ef96325e40a88ece2cec79ce2e12b0365e70c162 - DSC_3570.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/ef96325e40a88ece2cec79ce2e12b0365e70c162 - DSC_3570.jpg new file mode 100755 index 00000000..c4e6c897 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/ef96325e40a88ece2cec79ce2e12b0365e70c162 - DSC_3570.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/efdeaaea84474051c79b0c359c1d648c9101ec93 - DSC_3697.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/efdeaaea84474051c79b0c359c1d648c9101ec93 - DSC_3697.jpg new file mode 100755 index 00000000..171dd9b8 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/efdeaaea84474051c79b0c359c1d648c9101ec93 - DSC_3697.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/f2b763155e8c4c7b3a77af27abc8377ac66b0d9a - DSC_3686.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/f2b763155e8c4c7b3a77af27abc8377ac66b0d9a - DSC_3686.jpg new file mode 100755 index 00000000..be198323 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/f2b763155e8c4c7b3a77af27abc8377ac66b0d9a - DSC_3686.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/f4c4b1666be5cefb115865bcae058dff4179628a - DSC_3662.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/f4c4b1666be5cefb115865bcae058dff4179628a - DSC_3662.jpg new file mode 100755 index 00000000..0b19b902 Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/f4c4b1666be5cefb115865bcae058dff4179628a - DSC_3662.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/f7421a5e3ff51c8302cda7cbecb7694aab94d98f - DSC_3726.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/f7421a5e3ff51c8302cda7cbecb7694aab94d98f - DSC_3726.jpg new file mode 100755 index 00000000..f679c29e Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/f7421a5e3ff51c8302cda7cbecb7694aab94d98f - DSC_3726.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/fb2eafbab8a5c77c80f4a3d41c69a22cf5a7d072 - DSC_3753.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/fb2eafbab8a5c77c80f4a3d41c69a22cf5a7d072 - DSC_3753.jpg new file mode 100755 index 00000000..f75613be Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/fb2eafbab8a5c77c80f4a3d41c69a22cf5a7d072 - DSC_3753.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/fc161f187548fb432d5f5ebfd0cd5e358a774db0 - DSC_3516.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/fc161f187548fb432d5f5ebfd0cd5e358a774db0 - DSC_3516.jpg new file mode 100755 index 00000000..9dd2e29a Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/fc161f187548fb432d5f5ebfd0cd5e358a774db0 - DSC_3516.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/150px/fd3c1cc9c2a8155704e3cb2ace2dd3fc86b1920d - DSC_3574.jpg b/ui (gen1)/images/350px/.ImageGridCache/150px/fd3c1cc9c2a8155704e3cb2ace2dd3fc86b1920d - DSC_3574.jpg new file mode 100755 index 00000000..9b98aa9b Binary files /dev/null and b/ui (gen1)/images/350px/.ImageGridCache/150px/fd3c1cc9c2a8155704e3cb2ace2dd3fc86b1920d - DSC_3574.jpg differ diff --git a/ui (gen1)/images/350px/.ImageGridCache/all.json b/ui (gen1)/images/350px/.ImageGridCache/all.json new file mode 100755 index 00000000..cf4036ef --- /dev/null +++ b/ui (gen1)/images/350px/.ImageGridCache/all.json @@ -0,0 +1,1330 @@ +{ + "position": "2540533da23b401485af2b14588f2e385c8ce0a5", + "ribbons": [ + { + "2540533da23b401485af2b14588f2e385c8ce0a5": { + "path": "./images/350px/DSC_3698.jpg", + "preview": { + "350px": "./images/350px/DSC_3698.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2540533da23b401485af2b14588f2e385c8ce0a5%20-%20DSC_3698.jpg" + }, + "id": "2540533da23b401485af2b14588f2e385c8ce0a5", + "ctime": 1339157555.8507047 + }, + "03162bb32ae0468507979d340ec0a45438b809aa": { + "path": "./images/350px/DSC_3755.jpg", + "preview": { + "350px": "./images/350px/DSC_3755.jpg", + "150px": "./images/350px/.ImageGridCache/150px/03162bb32ae0468507979d340ec0a45438b809aa%20-%20DSC_3755.jpg" + }, + "id": "03162bb32ae0468507979d340ec0a45438b809aa", + "ctime": 1339157555.3499846 + }, + "caf04703ac0a884df5de75bf1f12c7611132c0e9": { + "path": "./images/350px/DSC_3713.jpg", + "preview": { + "350px": "./images/350px/DSC_3713.jpg", + "150px": "./images/350px/.ImageGridCache/150px/caf04703ac0a884df5de75bf1f12c7611132c0e9%20-%20DSC_3713.jpg" + }, + "id": "caf04703ac0a884df5de75bf1f12c7611132c0e9", + "ctime": 1339157555.7004888 + }, + "dcb47754e398f86ddaa56dae399ab3e5cb8224d1": { + "path": "./images/350px/DSC_3511.jpg", + "preview": { + "350px": "./images/350px/DSC_3511.jpg", + "150px": "./images/350px/.ImageGridCache/150px/dcb47754e398f86ddaa56dae399ab3e5cb8224d1%20-%20DSC_3511.jpg" + }, + "id": "dcb47754e398f86ddaa56dae399ab3e5cb8224d1", + "ctime": 1339157557.533124 + }, + "d8aa1abff224e99fe5b9b7cb54750051c81469ad": { + "path": "./images/350px/DSC_3664.jpg", + "preview": { + "350px": "./images/350px/DSC_3664.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d8aa1abff224e99fe5b9b7cb54750051c81469ad%20-%20DSC_3664.jpg" + }, + "id": "d8aa1abff224e99fe5b9b7cb54750051c81469ad", + "ctime": 1339157556.0509927 + }, + "13d8d7c28571000105a72094610517e8412c813b": { + "path": "./images/350px/DSC_3611.jpg", + "preview": { + "350px": "./images/350px/DSC_3611.jpg", + "150px": "./images/350px/.ImageGridCache/150px/13d8d7c28571000105a72094610517e8412c813b%20-%20DSC_3611.jpg" + }, + "id": "13d8d7c28571000105a72094610517e8412c813b", + "ctime": 1339157556.5517128 + }, + "fc161f187548fb432d5f5ebfd0cd5e358a774db0": { + "path": "./images/350px/DSC_3516.jpg", + "preview": { + "350px": "./images/350px/DSC_3516.jpg", + "150px": "./images/350px/.ImageGridCache/150px/fc161f187548fb432d5f5ebfd0cd5e358a774db0%20-%20DSC_3516.jpg" + }, + "id": "fc161f187548fb432d5f5ebfd0cd5e358a774db0", + "ctime": 1339157557.4930663 + }, + "bd2a4d7da462256c6fb3a80131532b1e3a5d9b42": { + "path": "./images/350px/DSC_3555.jpg", + "preview": { + "350px": "./images/350px/DSC_3555.jpg", + "150px": "./images/350px/.ImageGridCache/150px/bd2a4d7da462256c6fb3a80131532b1e3a5d9b42%20-%20DSC_3555.jpg" + }, + "id": "bd2a4d7da462256c6fb3a80131532b1e3a5d9b42", + "ctime": 1339157557.1025047 + }, + "777f053cf3f6103a434914da32e7af7b757d1cc0": { + "path": "./images/350px/DSC_3812.jpg", + "preview": { + "350px": "./images/350px/DSC_3812.jpg", + "150px": "./images/350px/.ImageGridCache/150px/777f053cf3f6103a434914da32e7af7b757d1cc0%20-%20DSC_3812.jpg" + }, + "id": "777f053cf3f6103a434914da32e7af7b757d1cc0", + "ctime": 1339157555.0896103 + }, + "7801dd0ab5e839a437555db81a8cfdfb656905cf": { + "path": "./images/350px/DSC_3586.jpg", + "preview": { + "350px": "./images/350px/DSC_3586.jpg", + "150px": "./images/350px/.ImageGridCache/150px/7801dd0ab5e839a437555db81a8cfdfb656905cf%20-%20DSC_3586.jpg" + }, + "id": "7801dd0ab5e839a437555db81a8cfdfb656905cf", + "ctime": 1339157556.782044 + }, + "32fe39dbf722ad06966c047f8b53caff3020e271": { + "path": "./images/350px/DSC_3714.jpg", + "preview": { + "350px": "./images/350px/DSC_3714.jpg", + "150px": "./images/350px/.ImageGridCache/150px/32fe39dbf722ad06966c047f8b53caff3020e271%20-%20DSC_3714.jpg" + }, + "id": "32fe39dbf722ad06966c047f8b53caff3020e271", + "ctime": 1339157555.68046 + }, + "99ecaf0b098e4543056eefd59d39c582e47f9d6b": { + "path": "./images/350px/DSC_3693.jpg", + "preview": { + "350px": "./images/350px/DSC_3693.jpg", + "150px": "./images/350px/.ImageGridCache/150px/99ecaf0b098e4543056eefd59d39c582e47f9d6b%20-%20DSC_3693.jpg" + }, + "id": "99ecaf0b098e4543056eefd59d39c582e47f9d6b", + "ctime": 1339157555.9007766 + }, + "d5746ea5fa662a8ea939d3025542c822a765bc82": { + "path": "./images/350px/DSC_3705.jpg", + "preview": { + "350px": "./images/350px/DSC_3705.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d5746ea5fa662a8ea939d3025542c822a765bc82%20-%20DSC_3705.jpg" + }, + "id": "d5746ea5fa662a8ea939d3025542c822a765bc82", + "ctime": 1339157555.760575 + }, + "89f6d82d64e2f1451ade39101a63e79be3c21668": { + "path": "./images/350px/DSC_3537.jpg", + "preview": { + "350px": "./images/350px/DSC_3537.jpg", + "150px": "./images/350px/.ImageGridCache/150px/89f6d82d64e2f1451ade39101a63e79be3c21668%20-%20DSC_3537.jpg" + }, + "id": "89f6d82d64e2f1451ade39101a63e79be3c21668", + "ctime": 1339157557.2927783 + }, + "26172b8447d5b8f3038c5f60269131db4e11b104": { + "path": "./images/350px/DSC_3653.jpg", + "preview": { + "350px": "./images/350px/DSC_3653.jpg", + "150px": "./images/350px/.ImageGridCache/150px/26172b8447d5b8f3038c5f60269131db4e11b104%20-%20DSC_3653.jpg" + }, + "id": "26172b8447d5b8f3038c5f60269131db4e11b104", + "ctime": 1339157556.1511366 + }, + "a432d915e9282caa8814a5877137f489d73caf0c": { + "path": "./images/350px/DSC_3633.jpg", + "preview": { + "350px": "./images/350px/DSC_3633.jpg", + "150px": "./images/350px/.ImageGridCache/150px/a432d915e9282caa8814a5877137f489d73caf0c%20-%20DSC_3633.jpg" + }, + "id": "a432d915e9282caa8814a5877137f489d73caf0c", + "ctime": 1339157556.3213816 + }, + "0a7a3f7bbd3c7a0839c4adb67f96f8008397be04": { + "path": "./images/350px/DSC_3744.jpg", + "preview": { + "350px": "./images/350px/DSC_3744.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0a7a3f7bbd3c7a0839c4adb67f96f8008397be04%20-%20DSC_3744.jpg" + }, + "id": "0a7a3f7bbd3c7a0839c4adb67f96f8008397be04", + "ctime": 1339157555.4401143 + }, + "e5ed9c0002505b7a40878ebb95bab2202c20a1f4": { + "path": "./images/350px/DSC_3638.jpg", + "preview": { + "350px": "./images/350px/DSC_3638.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e5ed9c0002505b7a40878ebb95bab2202c20a1f4%20-%20DSC_3638.jpg" + }, + "id": "e5ed9c0002505b7a40878ebb95bab2202c20a1f4", + "ctime": 1339157556.281324 + }, + "ef96325e40a88ece2cec79ce2e12b0365e70c162": { + "path": "./images/350px/DSC_3570.jpg", + "preview": { + "350px": "./images/350px/DSC_3570.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ef96325e40a88ece2cec79ce2e12b0365e70c162%20-%20DSC_3570.jpg" + }, + "id": "ef96325e40a88ece2cec79ce2e12b0365e70c162", + "ctime": 1339157556.9422743 + }, + "b3b184296bea88a8fa72d5f4861973a8701dea01": { + "path": "./images/350px/DSC_3608.jpg", + "preview": { + "350px": "./images/350px/DSC_3608.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b3b184296bea88a8fa72d5f4861973a8701dea01%20-%20DSC_3608.jpg" + }, + "id": "b3b184296bea88a8fa72d5f4861973a8701dea01", + "ctime": 1339157556.5717416 + }, + "18a3f4bd958ce00ea810216752072e704c7b5795": { + "path": "./images/350px/DSC_3509.jpg", + "preview": { + "350px": "./images/350px/DSC_3509.jpg", + "150px": "./images/350px/.ImageGridCache/150px/18a3f4bd958ce00ea810216752072e704c7b5795%20-%20DSC_3509.jpg" + }, + "id": "18a3f4bd958ce00ea810216752072e704c7b5795", + "ctime": 1339157557.5431383 + }, + "b34ace0518a595880d12228d784656fd385a218e": { + "path": "./images/350px/DSC_3613.jpg", + "preview": { + "350px": "./images/350px/DSC_3613.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b34ace0518a595880d12228d784656fd385a218e%20-%20DSC_3613.jpg" + }, + "id": "b34ace0518a595880d12228d784656fd385a218e", + "ctime": 1339157556.5416982 + }, + "923e297a7df72bb9bd242008114e8a4ce557abdf": { + "path": "./images/350px/DSC_3677.jpg", + "preview": { + "350px": "./images/350px/DSC_3677.jpg", + "150px": "./images/350px/.ImageGridCache/150px/923e297a7df72bb9bd242008114e8a4ce557abdf%20-%20DSC_3677.jpg" + }, + "id": "923e297a7df72bb9bd242008114e8a4ce557abdf", + "ctime": 1339157555.960863 + }, + "b1a9dc4a268212e97d05791731aea6f91bef84de": { + "path": "./images/350px/DSC_3598.jpg", + "preview": { + "350px": "./images/350px/DSC_3598.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b1a9dc4a268212e97d05791731aea6f91bef84de%20-%20DSC_3598.jpg" + }, + "id": "b1a9dc4a268212e97d05791731aea6f91bef84de", + "ctime": 1339157556.6818998 + }, + "f2b763155e8c4c7b3a77af27abc8377ac66b0d9a": { + "path": "./images/350px/DSC_3686.jpg", + "preview": { + "350px": "./images/350px/DSC_3686.jpg", + "150px": "./images/350px/.ImageGridCache/150px/f2b763155e8c4c7b3a77af27abc8377ac66b0d9a%20-%20DSC_3686.jpg" + }, + "id": "f2b763155e8c4c7b3a77af27abc8377ac66b0d9a", + "ctime": 1339157555.9107912 + }, + "7d1885c2b1c6428ed66d5ba78f5bbab9d6dfca82": { + "path": "./images/350px/DSC_3605.jpg", + "preview": { + "350px": "./images/350px/DSC_3605.jpg", + "150px": "./images/350px/.ImageGridCache/150px/7d1885c2b1c6428ed66d5ba78f5bbab9d6dfca82%20-%20DSC_3605.jpg" + }, + "id": "7d1885c2b1c6428ed66d5ba78f5bbab9d6dfca82", + "ctime": 1339157556.6218135 + }, + "0efb3029557c7deaa4121bdeaff2506c32ef1662": { + "path": "./images/350px/DSC_3565.jpg", + "preview": { + "350px": "./images/350px/DSC_3565.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0efb3029557c7deaa4121bdeaff2506c32ef1662%20-%20DSC_3565.jpg" + }, + "id": "0efb3029557c7deaa4121bdeaff2506c32ef1662", + "ctime": 1339157557.0023606 + }, + "929da4b36039bcdd2c80d7903db47ffbcd568902": { + "path": "./images/350px/DSC_3712.jpg", + "preview": { + "350px": "./images/350px/DSC_3712.jpg", + "150px": "./images/350px/.ImageGridCache/150px/929da4b36039bcdd2c80d7903db47ffbcd568902%20-%20DSC_3712.jpg" + }, + "id": "929da4b36039bcdd2c80d7903db47ffbcd568902", + "ctime": 1339157555.710503 + }, + "8ee0ab33ace2d227d9077aa5dc4ac4b25bff5445": { + "path": "./images/350px/DSC_3781.jpg", + "preview": { + "350px": "./images/350px/DSC_3781.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8ee0ab33ace2d227d9077aa5dc4ac4b25bff5445%20-%20DSC_3781.jpg" + }, + "id": "8ee0ab33ace2d227d9077aa5dc4ac4b25bff5445", + "ctime": 1339157555.2498407 + }, + "de81dfd41412595d95e779e8b64d6e3a81c14cd1": { + "path": "./images/350px/DSC_3727.jpg", + "preview": { + "350px": "./images/350px/DSC_3727.jpg", + "150px": "./images/350px/.ImageGridCache/150px/de81dfd41412595d95e779e8b64d6e3a81c14cd1%20-%20DSC_3727.jpg" + }, + "id": "de81dfd41412595d95e779e8b64d6e3a81c14cd1", + "ctime": 1339157555.5903304 + }, + "b5b43cfb3c2de2f6637f52d7b5de0c0723967b8c": { + "path": "./images/350px/DSC_3737.jpg", + "preview": { + "350px": "./images/350px/DSC_3737.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b5b43cfb3c2de2f6637f52d7b5de0c0723967b8c%20-%20DSC_3737.jpg" + }, + "id": "b5b43cfb3c2de2f6637f52d7b5de0c0723967b8c", + "ctime": 1339157555.510215 + }, + "b8fe169b76d12dd960e5f81c6489b9b2a0f009bd": { + "path": "./images/350px/DSC_3599.jpg", + "preview": { + "350px": "./images/350px/DSC_3599.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b8fe169b76d12dd960e5f81c6489b9b2a0f009bd%20-%20DSC_3599.jpg" + }, + "id": "b8fe169b76d12dd960e5f81c6489b9b2a0f009bd", + "ctime": 1339157556.6718855 + }, + "8703e98633a09faa402a799194d9b93b7991e449": { + "path": "./images/350px/DSC_3666.jpg", + "preview": { + "350px": "./images/350px/DSC_3666.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8703e98633a09faa402a799194d9b93b7991e449%20-%20DSC_3666.jpg" + }, + "id": "8703e98633a09faa402a799194d9b93b7991e449", + "ctime": 1339157556.030964 + }, + "70bcbbd3b3b62c804ba5c69d3e788774d6167147": { + "path": "./images/350px/DSC_3575.jpg", + "preview": { + "350px": "./images/350px/DSC_3575.jpg", + "150px": "./images/350px/.ImageGridCache/150px/70bcbbd3b3b62c804ba5c69d3e788774d6167147%20-%20DSC_3575.jpg" + }, + "id": "70bcbbd3b3b62c804ba5c69d3e788774d6167147", + "ctime": 1339157556.862159 + }, + "f7421a5e3ff51c8302cda7cbecb7694aab94d98f": { + "path": "./images/350px/DSC_3726.jpg", + "preview": { + "350px": "./images/350px/DSC_3726.jpg", + "150px": "./images/350px/.ImageGridCache/150px/f7421a5e3ff51c8302cda7cbecb7694aab94d98f%20-%20DSC_3726.jpg" + }, + "id": "f7421a5e3ff51c8302cda7cbecb7694aab94d98f", + "ctime": 1339157555.6103592 + }, + "d28cb25a0d5729594b89740d6b61ae00556fe1fb": { + "path": "./images/350px/DSC_3508.jpg", + "preview": { + "350px": "./images/350px/DSC_3508.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d28cb25a0d5729594b89740d6b61ae00556fe1fb%20-%20DSC_3508.jpg" + }, + "id": "d28cb25a0d5729594b89740d6b61ae00556fe1fb", + "ctime": 1339157557.5531528 + }, + "c9669e076bee492ad499a83eaf71b173155991f2": { + "path": "./images/350px/DSC_3623.jpg", + "preview": { + "350px": "./images/350px/DSC_3623.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c9669e076bee492ad499a83eaf71b173155991f2%20-%20DSC_3623.jpg" + }, + "id": "c9669e076bee492ad499a83eaf71b173155991f2", + "ctime": 1339157556.4615831 + }, + "ae6e160c5c449181b78822babddb82bb5f62fde7": { + "path": "./images/350px/DSC_3793.jpg", + "preview": { + "350px": "./images/350px/DSC_3793.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ae6e160c5c449181b78822babddb82bb5f62fde7%20-%20DSC_3793.jpg" + }, + "id": "ae6e160c5c449181b78822babddb82bb5f62fde7", + "ctime": 1339157555.1897542 + }, + "5c494f9e019709e92ec2d392d8a55f1d2e416ca9": { + "path": "./images/350px/DSC_3501.jpg", + "preview": { + "350px": "./images/350px/DSC_3501.jpg", + "150px": "./images/350px/.ImageGridCache/150px/5c494f9e019709e92ec2d392d8a55f1d2e416ca9%20-%20DSC_3501.jpg" + }, + "id": "5c494f9e019709e92ec2d392d8a55f1d2e416ca9", + "ctime": 1339157557.6332679 + }, + "4e29e5f8dff699b38c3a281887b1bd4cebb57e04": { + "path": "./images/350px/DSC_3595.jpg", + "preview": { + "350px": "./images/350px/DSC_3595.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4e29e5f8dff699b38c3a281887b1bd4cebb57e04%20-%20DSC_3595.jpg" + }, + "id": "4e29e5f8dff699b38c3a281887b1bd4cebb57e04", + "ctime": 1339157556.7019286 + }, + "cb0a2e9713f45909d1f1f2516cb590e3f1acf534": { + "path": "./images/350px/DSC_3548.jpg", + "preview": { + "350px": "./images/350px/DSC_3548.jpg", + "150px": "./images/350px/.ImageGridCache/150px/cb0a2e9713f45909d1f1f2516cb590e3f1acf534%20-%20DSC_3548.jpg" + }, + "id": "cb0a2e9713f45909d1f1f2516cb590e3f1acf534", + "ctime": 1339157557.1726055 + }, + "ac6c5f039262643496583b2a5756793939199abf": { + "path": "./images/350px/DSC_3594.jpg", + "preview": { + "350px": "./images/350px/DSC_3594.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ac6c5f039262643496583b2a5756793939199abf%20-%20DSC_3594.jpg" + }, + "id": "ac6c5f039262643496583b2a5756793939199abf", + "ctime": 1339157556.7119431 + }, + "8fb694920ddc9e2682c7091ec09a855ed394980d": { + "path": "./images/350px/DSC_3641.jpg", + "preview": { + "350px": "./images/350px/DSC_3641.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8fb694920ddc9e2682c7091ec09a855ed394980d%20-%20DSC_3641.jpg" + }, + "id": "8fb694920ddc9e2682c7091ec09a855ed394980d", + "ctime": 1339157556.2512808 + }, + "af1fcb733024ffda0ae638bfc881ba83b868d2be": { + "path": "./images/350px/DSC_3682.jpg", + "preview": { + "350px": "./images/350px/DSC_3682.jpg", + "150px": "./images/350px/.ImageGridCache/150px/af1fcb733024ffda0ae638bfc881ba83b868d2be%20-%20DSC_3682.jpg" + }, + "id": "af1fcb733024ffda0ae638bfc881ba83b868d2be", + "ctime": 1339157555.9508488 + }, + "7c6863909e0727583d3125071afc94f158804bc0": { + "path": "./images/350px/DSC_3733.jpg", + "preview": { + "350px": "./images/350px/DSC_3733.jpg", + "150px": "./images/350px/.ImageGridCache/150px/7c6863909e0727583d3125071afc94f158804bc0%20-%20DSC_3733.jpg" + }, + "id": "7c6863909e0727583d3125071afc94f158804bc0", + "ctime": 1339157555.5502727 + }, + "8841793c1b83dd663e4c15c0f619cfd1fde582ff": { + "path": "./images/350px/DSC_3517.jpg", + "preview": { + "350px": "./images/350px/DSC_3517.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8841793c1b83dd663e4c15c0f619cfd1fde582ff%20-%20DSC_3517.jpg" + }, + "id": "8841793c1b83dd663e4c15c0f619cfd1fde582ff", + "ctime": 1339157557.4730375 + }, + "c0a4e57deeff4042d1bf3436f0dad231b05a8c17": { + "path": "./images/350px/DSC_3624.jpg", + "preview": { + "350px": "./images/350px/DSC_3624.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c0a4e57deeff4042d1bf3436f0dad231b05a8c17%20-%20DSC_3624.jpg" + }, + "id": "c0a4e57deeff4042d1bf3436f0dad231b05a8c17", + "ctime": 1339157556.4515686 + }, + "a116aa6f2b61497585704f0afcdd2cccdbe352ec": { + "path": "./images/350px/DSC_3553.jpg", + "preview": { + "350px": "./images/350px/DSC_3553.jpg", + "150px": "./images/350px/.ImageGridCache/150px/a116aa6f2b61497585704f0afcdd2cccdbe352ec%20-%20DSC_3553.jpg" + }, + "id": "a116aa6f2b61497585704f0afcdd2cccdbe352ec", + "ctime": 1339157557.1225336 + }, + "e3cae95b7238b56f6049e13deb8b2d32143e9f00": { + "path": "./images/350px/DSC_3504.jpg", + "preview": { + "350px": "./images/350px/DSC_3504.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e3cae95b7238b56f6049e13deb8b2d32143e9f00%20-%20DSC_3504.jpg" + }, + "id": "e3cae95b7238b56f6049e13deb8b2d32143e9f00", + "ctime": 1339157557.5932102 + }, + "75373d28daf6451f6a8d4af86da34be009d10bc7": { + "path": "./images/350px/DSC_3722.jpg", + "preview": { + "350px": "./images/350px/DSC_3722.jpg", + "150px": "./images/350px/.ImageGridCache/150px/75373d28daf6451f6a8d4af86da34be009d10bc7%20-%20DSC_3722.jpg" + }, + "id": "75373d28daf6451f6a8d4af86da34be009d10bc7", + "ctime": 1339157555.6404023 + }, + "8bb025a803af827dd389a265895294fdb06765c1": { + "path": "./images/350px/DSC_3522.jpg", + "preview": { + "350px": "./images/350px/DSC_3522.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8bb025a803af827dd389a265895294fdb06765c1%20-%20DSC_3522.jpg" + }, + "id": "8bb025a803af827dd389a265895294fdb06765c1", + "ctime": 1339157557.4229655 + }, + "853c9839db3cc9e6cca1bbdf8d6e3287958073c7": { + "path": "./images/350px/DSC_3757.jpg", + "preview": { + "350px": "./images/350px/DSC_3757.jpg", + "150px": "./images/350px/.ImageGridCache/150px/853c9839db3cc9e6cca1bbdf8d6e3287958073c7%20-%20DSC_3757.jpg" + }, + "id": "853c9839db3cc9e6cca1bbdf8d6e3287958073c7", + "ctime": 1339157555.2999127 + }, + "aedd7fb5ed381b0f6baa34c724eb42ecb17dd02b": { + "path": "./images/350px/DSC_3673.jpg", + "preview": { + "350px": "./images/350px/DSC_3673.jpg", + "150px": "./images/350px/.ImageGridCache/150px/aedd7fb5ed381b0f6baa34c724eb42ecb17dd02b%20-%20DSC_3673.jpg" + }, + "id": "aedd7fb5ed381b0f6baa34c724eb42ecb17dd02b", + "ctime": 1339157556.0009208 + }, + "3cceee3b351fcf7f656cacdb28c1161d7ce0e42e": { + "path": "./images/350px/DSC_3534.jpg", + "preview": { + "350px": "./images/350px/DSC_3534.jpg", + "150px": "./images/350px/.ImageGridCache/150px/3cceee3b351fcf7f656cacdb28c1161d7ce0e42e%20-%20DSC_3534.jpg" + }, + "id": "3cceee3b351fcf7f656cacdb28c1161d7ce0e42e", + "ctime": 1339157557.3228216 + }, + "9da91758f3588a346a2c2747f11ab1c386d19cae": { + "path": "./images/350px/DSC_3703.jpg", + "preview": { + "350px": "./images/350px/DSC_3703.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9da91758f3588a346a2c2747f11ab1c386d19cae%20-%20DSC_3703.jpg" + }, + "id": "9da91758f3588a346a2c2747f11ab1c386d19cae", + "ctime": 1339157555.8006327 + }, + "b82dd5935b472d7128d5eb3e7ef6ec91cab7b004": { + "path": "./images/350px/DSC_3648.jpg", + "preview": { + "350px": "./images/350px/DSC_3648.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b82dd5935b472d7128d5eb3e7ef6ec91cab7b004%20-%20DSC_3648.jpg" + }, + "id": "b82dd5935b472d7128d5eb3e7ef6ec91cab7b004", + "ctime": 1339157556.1911943 + }, + "68ca888cb315a3d2a801e74ba0a8d2f6d3ca3838": { + "path": "./images/350px/DSC_3656.jpg", + "preview": { + "350px": "./images/350px/DSC_3656.jpg", + "150px": "./images/350px/.ImageGridCache/150px/68ca888cb315a3d2a801e74ba0a8d2f6d3ca3838%20-%20DSC_3656.jpg" + }, + "id": "68ca888cb315a3d2a801e74ba0a8d2f6d3ca3838", + "ctime": 1339157556.1411223 + }, + "1c1bf9a8974e06a45eaeadf232865d7bd7f424c0": { + "path": "./images/350px/DSC_3632.jpg", + "preview": { + "350px": "./images/350px/DSC_3632.jpg", + "150px": "./images/350px/.ImageGridCache/150px/1c1bf9a8974e06a45eaeadf232865d7bd7f424c0%20-%20DSC_3632.jpg" + }, + "id": "1c1bf9a8974e06a45eaeadf232865d7bd7f424c0", + "ctime": 1339157556.3313959 + }, + "73cc7a979665786f08b6e46d07cd94380a5b37fe": { + "path": "./images/350px/DSC_3708.jpg", + "preview": { + "350px": "./images/350px/DSC_3708.jpg", + "150px": "./images/350px/.ImageGridCache/150px/73cc7a979665786f08b6e46d07cd94380a5b37fe%20-%20DSC_3708.jpg" + }, + "id": "73cc7a979665786f08b6e46d07cd94380a5b37fe", + "ctime": 1339157555.7505608 + }, + "4ae34f412978d63537b2cedb374923a8829a325c": { + "path": "./images/350px/DSC_3518.jpg", + "preview": { + "350px": "./images/350px/DSC_3518.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4ae34f412978d63537b2cedb374923a8829a325c%20-%20DSC_3518.jpg" + }, + "id": "4ae34f412978d63537b2cedb374923a8829a325c", + "ctime": 1339157557.4530087 + }, + "af2f5e3d12ffb40ed74b53f9bcf8b3aedb0d110d": { + "path": "./images/350px/DSC_3615.jpg", + "preview": { + "350px": "./images/350px/DSC_3615.jpg", + "150px": "./images/350px/.ImageGridCache/150px/af2f5e3d12ffb40ed74b53f9bcf8b3aedb0d110d%20-%20DSC_3615.jpg" + }, + "id": "af2f5e3d12ffb40ed74b53f9bcf8b3aedb0d110d", + "ctime": 1339157556.4916263 + }, + "be1b783c751b8f493b1f92e076a57baf8ba2b7c8": { + "path": "./images/350px/DSC_3607.jpg", + "preview": { + "350px": "./images/350px/DSC_3607.jpg", + "150px": "./images/350px/.ImageGridCache/150px/be1b783c751b8f493b1f92e076a57baf8ba2b7c8%20-%20DSC_3607.jpg" + }, + "id": "be1b783c751b8f493b1f92e076a57baf8ba2b7c8", + "ctime": 1339157556.5817559 + }, + "e15f681d7f11b9b57c169278d99a7930609e086b": { + "path": "./images/350px/DSC_3562.jpg", + "preview": { + "350px": "./images/350px/DSC_3562.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e15f681d7f11b9b57c169278d99a7930609e086b%20-%20DSC_3562.jpg" + }, + "id": "e15f681d7f11b9b57c169278d99a7930609e086b", + "ctime": 1339157557.0223894 + }, + "2f22679ae63873258c779b808946585b468b4707": { + "path": "./images/350px/DSC_3572.jpg", + "preview": { + "350px": "./images/350px/DSC_3572.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2f22679ae63873258c779b808946585b468b4707%20-%20DSC_3572.jpg" + }, + "id": "2f22679ae63873258c779b808946585b468b4707", + "ctime": 1339157556.9122312 + }, + "ab1b37f83a940dc358ddbcf40934d8dbc1f86a21": { + "path": "./images/350px/DSC_3558.jpg", + "preview": { + "350px": "./images/350px/DSC_3558.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ab1b37f83a940dc358ddbcf40934d8dbc1f86a21%20-%20DSC_3558.jpg" + }, + "id": "ab1b37f83a940dc358ddbcf40934d8dbc1f86a21", + "ctime": 1339157557.0924902 + }, + "fd3c1cc9c2a8155704e3cb2ace2dd3fc86b1920d": { + "path": "./images/350px/DSC_3574.jpg", + "preview": { + "350px": "./images/350px/DSC_3574.jpg", + "150px": "./images/350px/.ImageGridCache/150px/fd3c1cc9c2a8155704e3cb2ace2dd3fc86b1920d%20-%20DSC_3574.jpg" + }, + "id": "fd3c1cc9c2a8155704e3cb2ace2dd3fc86b1920d", + "ctime": 1339157556.8721735 + }, + "40253a9f8ff0ecac275851f6db4bf5236d68fd9c": { + "path": "./images/350px/DSC_3578.jpg", + "preview": { + "350px": "./images/350px/DSC_3578.jpg", + "150px": "./images/350px/.ImageGridCache/150px/40253a9f8ff0ecac275851f6db4bf5236d68fd9c%20-%20DSC_3578.jpg" + }, + "id": "40253a9f8ff0ecac275851f6db4bf5236d68fd9c", + "ctime": 1339157556.832116 + }, + "7ced0eefef81ed05df441db2437e7f78bd43c92d": { + "path": "./images/350px/DSC_3590.jpg", + "preview": { + "350px": "./images/350px/DSC_3590.jpg", + "150px": "./images/350px/.ImageGridCache/150px/7ced0eefef81ed05df441db2437e7f78bd43c92d%20-%20DSC_3590.jpg" + }, + "id": "7ced0eefef81ed05df441db2437e7f78bd43c92d", + "ctime": 1339157556.7720294 + }, + "77063b7804590152c6a400fcaf303e632b0aa60f": { + "path": "./images/350px/DSC_3699.jpg", + "preview": { + "350px": "./images/350px/DSC_3699.jpg", + "150px": "./images/350px/.ImageGridCache/150px/77063b7804590152c6a400fcaf303e632b0aa60f%20-%20DSC_3699.jpg" + }, + "id": "77063b7804590152c6a400fcaf303e632b0aa60f", + "ctime": 1339157555.8306758 + }, + "51fb2a161e281eb50f98984720666f95093e8d69": { + "path": "./images/350px/DSC_3535.jpg", + "preview": { + "350px": "./images/350px/DSC_3535.jpg", + "150px": "./images/350px/.ImageGridCache/150px/51fb2a161e281eb50f98984720666f95093e8d69%20-%20DSC_3535.jpg" + }, + "id": "51fb2a161e281eb50f98984720666f95093e8d69", + "ctime": 1339157557.3027928 + }, + "9d8196da0952cb05f5c06f215de6b75ccbbd3f32": { + "path": "./images/350px/DSC_3512.jpg", + "preview": { + "350px": "./images/350px/DSC_3512.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9d8196da0952cb05f5c06f215de6b75ccbbd3f32%20-%20DSC_3512.jpg" + }, + "id": "9d8196da0952cb05f5c06f215de6b75ccbbd3f32", + "ctime": 1339157557.5030806 + }, + "ad0d30f6f601366406774163c2110d1959886def": { + "path": "./images/350px/DSC_3619.jpg", + "preview": { + "350px": "./images/350px/DSC_3619.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ad0d30f6f601366406774163c2110d1959886def%20-%20DSC_3619.jpg" + }, + "id": "ad0d30f6f601366406774163c2110d1959886def", + "ctime": 1339157556.481612 + }, + "dee421b37a77824509c736803dd7d8cac634b565": { + "path": "./images/350px/DSC_3801.jpg", + "preview": { + "350px": "./images/350px/DSC_3801.jpg", + "150px": "./images/350px/.ImageGridCache/150px/dee421b37a77824509c736803dd7d8cac634b565%20-%20DSC_3801.jpg" + }, + "id": "dee421b37a77824509c736803dd7d8cac634b565", + "ctime": 1339157555.1496966 + }, + "9a4ef75e8a2725a422826684ca0ad7d06c384ec4": { + "path": "./images/350px/DSC_3543.jpg", + "preview": { + "350px": "./images/350px/DSC_3543.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9a4ef75e8a2725a422826684ca0ad7d06c384ec4%20-%20DSC_3543.jpg" + }, + "id": "9a4ef75e8a2725a422826684ca0ad7d06c384ec4", + "ctime": 1339157557.2527206 + }, + "cc2076041dc8b22d8b57429bd53f5f2f3bf8d299": { + "path": "./images/350px/DSC_3561.jpg", + "preview": { + "350px": "./images/350px/DSC_3561.jpg", + "150px": "./images/350px/.ImageGridCache/150px/cc2076041dc8b22d8b57429bd53f5f2f3bf8d299%20-%20DSC_3561.jpg" + }, + "id": "cc2076041dc8b22d8b57429bd53f5f2f3bf8d299", + "ctime": 1339157557.032404 + }, + "9de5a6d18b8d3e7e5ff0ccd0b4694a7e1d5641e9": { + "path": "./images/350px/DSC_3815.jpg", + "preview": { + "350px": "./images/350px/DSC_3815.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9de5a6d18b8d3e7e5ff0ccd0b4694a7e1d5641e9%20-%20DSC_3815.jpg" + }, + "id": "9de5a6d18b8d3e7e5ff0ccd0b4694a7e1d5641e9", + "ctime": 1339157555.0395384 + }, + "248d7d13283a04ead31f64e1e5b27187b2b96c01": { + "path": "./images/350px/DSC_3566.jpg", + "preview": { + "350px": "./images/350px/DSC_3566.jpg", + "150px": "./images/350px/.ImageGridCache/150px/248d7d13283a04ead31f64e1e5b27187b2b96c01%20-%20DSC_3566.jpg" + }, + "id": "248d7d13283a04ead31f64e1e5b27187b2b96c01", + "ctime": 1339157556.9923463 + }, + "0c4c930b9694eb62b7331e773cc01c74faa0bcf3": { + "path": "./images/350px/DSC_3545.jpg", + "preview": { + "350px": "./images/350px/DSC_3545.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0c4c930b9694eb62b7331e773cc01c74faa0bcf3%20-%20DSC_3545.jpg" + }, + "id": "0c4c930b9694eb62b7331e773cc01c74faa0bcf3", + "ctime": 1339157557.2226775 + }, + "4f839380237f3dbf0dc8eb3ff76e275a34f3caa4": { + "path": "./images/350px/DSC_3519.jpg", + "preview": { + "350px": "./images/350px/DSC_3519.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4f839380237f3dbf0dc8eb3ff76e275a34f3caa4%20-%20DSC_3519.jpg" + }, + "id": "4f839380237f3dbf0dc8eb3ff76e275a34f3caa4", + "ctime": 1339157557.4429944 + }, + "00cd4b2f48e6b52ce03b8db8653a54855f7d3dc6": { + "path": "./images/350px/DSC_3652.jpg", + "preview": { + "350px": "./images/350px/DSC_3652.jpg", + "150px": "./images/350px/.ImageGridCache/150px/00cd4b2f48e6b52ce03b8db8653a54855f7d3dc6%20-%20DSC_3652.jpg" + }, + "id": "00cd4b2f48e6b52ce03b8db8653a54855f7d3dc6", + "ctime": 1339157556.1611512 + }, + "eb5dfd47648c563cf376fc53b3f62b7038c704dc": { + "path": "./images/350px/DSC_3606.jpg", + "preview": { + "350px": "./images/350px/DSC_3606.jpg", + "150px": "./images/350px/.ImageGridCache/150px/eb5dfd47648c563cf376fc53b3f62b7038c704dc%20-%20DSC_3606.jpg" + }, + "id": "eb5dfd47648c563cf376fc53b3f62b7038c704dc", + "ctime": 1339157556.6017847 + }, + "2b38c04b4339513421cfd1640b3b6de28f94b8ac": { + "path": "./images/350px/DSC_3645.jpg", + "preview": { + "350px": "./images/350px/DSC_3645.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2b38c04b4339513421cfd1640b3b6de28f94b8ac%20-%20DSC_3645.jpg" + }, + "id": "2b38c04b4339513421cfd1640b3b6de28f94b8ac", + "ctime": 1339157556.2112231 + }, + "dd4f8d8ebcb5f452c6b678e890a4982cf893e496": { + "path": "./images/350px/DSC_3701.jpg", + "preview": { + "350px": "./images/350px/DSC_3701.jpg", + "150px": "./images/350px/.ImageGridCache/150px/dd4f8d8ebcb5f452c6b678e890a4982cf893e496%20-%20DSC_3701.jpg" + }, + "id": "dd4f8d8ebcb5f452c6b678e890a4982cf893e496", + "ctime": 1339157555.8206615 + }, + "b6b41b34819189258088d6e471190bf90bb34d25": { + "path": "./images/350px/DSC_3723.jpg", + "preview": { + "350px": "./images/350px/DSC_3723.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b6b41b34819189258088d6e471190bf90bb34d25%20-%20DSC_3723.jpg" + }, + "id": "b6b41b34819189258088d6e471190bf90bb34d25", + "ctime": 1339157555.6303878 + }, + "215074419931fdf9485da3434ef95df8bf3a0e00": { + "path": "./images/350px/DSC_3783.jpg", + "preview": { + "350px": "./images/350px/DSC_3783.jpg", + "150px": "./images/350px/.ImageGridCache/150px/215074419931fdf9485da3434ef95df8bf3a0e00%20-%20DSC_3783.jpg" + }, + "id": "215074419931fdf9485da3434ef95df8bf3a0e00", + "ctime": 1339157555.2398262 + }, + "8c137ee596d7b41e7f4e052412ff83d101138c47": { + "path": "./images/350px/DSC_3787.jpg", + "preview": { + "350px": "./images/350px/DSC_3787.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8c137ee596d7b41e7f4e052412ff83d101138c47%20-%20DSC_3787.jpg" + }, + "id": "8c137ee596d7b41e7f4e052412ff83d101138c47", + "ctime": 1339157555.2197976 + }, + "b9f96e11538bb333361875b749ece295558e7866": { + "path": "./images/350px/DSC_3627.jpg", + "preview": { + "350px": "./images/350px/DSC_3627.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b9f96e11538bb333361875b749ece295558e7866%20-%20DSC_3627.jpg" + }, + "id": "b9f96e11538bb333361875b749ece295558e7866", + "ctime": 1339157556.4014966 + }, + "a588425cb49dbf7baf8c302edb34412019a5e559": { + "path": "./images/350px/DSC_3661.jpg", + "preview": { + "350px": "./images/350px/DSC_3661.jpg", + "150px": "./images/350px/.ImageGridCache/150px/a588425cb49dbf7baf8c302edb34412019a5e559%20-%20DSC_3661.jpg" + }, + "id": "a588425cb49dbf7baf8c302edb34412019a5e559", + "ctime": 1339157556.0810359 + }, + "0189d11981822fc5f528901dec4880d4471aa075": { + "path": "./images/350px/DSC_3576.jpg", + "preview": { + "350px": "./images/350px/DSC_3576.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0189d11981822fc5f528901dec4880d4471aa075%20-%20DSC_3576.jpg" + }, + "id": "0189d11981822fc5f528901dec4880d4471aa075", + "ctime": 1339157556.8421302 + }, + "cfbac021afd77a6aa3edd714c1b98e88f80bcb72": { + "path": "./images/350px/DSC_3530.jpg", + "preview": { + "350px": "./images/350px/DSC_3530.jpg", + "150px": "./images/350px/.ImageGridCache/150px/cfbac021afd77a6aa3edd714c1b98e88f80bcb72%20-%20DSC_3530.jpg" + }, + "id": "cfbac021afd77a6aa3edd714c1b98e88f80bcb72", + "ctime": 1339157557.362879 + }, + "1c347b8d9fd0325d1d30b3797736ae376e35c356": { + "path": "./images/350px/DSC_3631.jpg", + "preview": { + "350px": "./images/350px/DSC_3631.jpg", + "150px": "./images/350px/.ImageGridCache/150px/1c347b8d9fd0325d1d30b3797736ae376e35c356%20-%20DSC_3631.jpg" + }, + "id": "1c347b8d9fd0325d1d30b3797736ae376e35c356", + "ctime": 1339157556.361439 + }, + "e70a45f489afee4e502b288ea329a3aaaa0ec9d9": { + "path": "./images/350px/DSC_3670.jpg", + "preview": { + "350px": "./images/350px/DSC_3670.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e70a45f489afee4e502b288ea329a3aaaa0ec9d9%20-%20DSC_3670.jpg" + }, + "id": "e70a45f489afee4e502b288ea329a3aaaa0ec9d9", + "ctime": 1339157556.010935 + }, + "a960f5e7b3b2a79c3275d9b0de587e2436cb7e87": { + "path": "./images/350px/DSC_3694.jpg", + "preview": { + "350px": "./images/350px/DSC_3694.jpg", + "150px": "./images/350px/.ImageGridCache/150px/a960f5e7b3b2a79c3275d9b0de587e2436cb7e87%20-%20DSC_3694.jpg" + }, + "id": "a960f5e7b3b2a79c3275d9b0de587e2436cb7e87", + "ctime": 1339157555.8807478 + }, + "ef13206121bd9321c2254f8e668ad865ba2766c7": { + "path": "./images/350px/DSC_3569.jpg", + "preview": { + "350px": "./images/350px/DSC_3569.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ef13206121bd9321c2254f8e668ad865ba2766c7%20-%20DSC_3569.jpg" + }, + "id": "ef13206121bd9321c2254f8e668ad865ba2766c7", + "ctime": 1339157556.9522886 + }, + "fb2eafbab8a5c77c80f4a3d41c69a22cf5a7d072": { + "path": "./images/350px/DSC_3753.jpg", + "preview": { + "350px": "./images/350px/DSC_3753.jpg", + "150px": "./images/350px/.ImageGridCache/150px/fb2eafbab8a5c77c80f4a3d41c69a22cf5a7d072%20-%20DSC_3753.jpg" + }, + "id": "fb2eafbab8a5c77c80f4a3d41c69a22cf5a7d072", + "ctime": 1339157555.3700135 + }, + "3e24bcb997c4a66800a545178127d0b7d06be311": { + "path": "./images/350px/DSC_3528.jpg", + "preview": { + "350px": "./images/350px/DSC_3528.jpg", + "150px": "./images/350px/.ImageGridCache/150px/3e24bcb997c4a66800a545178127d0b7d06be311%20-%20DSC_3528.jpg" + }, + "id": "3e24bcb997c4a66800a545178127d0b7d06be311", + "ctime": 1339157557.3728936 + }, + "c29bf6d3609de76d12f8240a26f488200458ade8": { + "path": "./images/350px/DSC_3763.jpg", + "preview": { + "350px": "./images/350px/DSC_3763.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c29bf6d3609de76d12f8240a26f488200458ade8%20-%20DSC_3763.jpg" + }, + "id": "c29bf6d3609de76d12f8240a26f488200458ade8", + "ctime": 1339157555.2898984 + }, + "4f1321fdd51d877186e8b47f8e77ae1b83fe268f": { + "path": "./images/350px/DSC_3711.jpg", + "preview": { + "350px": "./images/350px/DSC_3711.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4f1321fdd51d877186e8b47f8e77ae1b83fe268f%20-%20DSC_3711.jpg" + }, + "id": "4f1321fdd51d877186e8b47f8e77ae1b83fe268f", + "ctime": 1339157555.730532 + }, + "e25a2c75dd4a9faff887a2fe0543ff38be6afe9d": { + "path": "./images/350px/DSC_3751.jpg", + "preview": { + "350px": "./images/350px/DSC_3751.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e25a2c75dd4a9faff887a2fe0543ff38be6afe9d%20-%20DSC_3751.jpg" + }, + "id": "e25a2c75dd4a9faff887a2fe0543ff38be6afe9d", + "ctime": 1339157555.4200854 + }, + "53113f04d89828b6dde03bb731fa04fb1b694b97": { + "path": "./images/350px/DSC_3790.jpg", + "preview": { + "350px": "./images/350px/DSC_3790.jpg", + "150px": "./images/350px/.ImageGridCache/150px/53113f04d89828b6dde03bb731fa04fb1b694b97%20-%20DSC_3790.jpg" + }, + "id": "53113f04d89828b6dde03bb731fa04fb1b694b97", + "ctime": 1339157555.1997688 + }, + "5a6f8fe10dcc591abedf3f98b4d56de3c9732437": { + "path": "./images/350px/DSC_3716.jpg", + "preview": { + "350px": "./images/350px/DSC_3716.jpg", + "150px": "./images/350px/.ImageGridCache/150px/5a6f8fe10dcc591abedf3f98b4d56de3c9732437%20-%20DSC_3716.jpg" + }, + "id": "5a6f8fe10dcc591abedf3f98b4d56de3c9732437", + "ctime": 1339157555.6604311 + }, + "5e34bc6afa051598a410565f753437adb9c9698a": { + "path": "./images/350px/DSC_3794.jpg", + "preview": { + "350px": "./images/350px/DSC_3794.jpg", + "150px": "./images/350px/.ImageGridCache/150px/5e34bc6afa051598a410565f753437adb9c9698a%20-%20DSC_3794.jpg" + }, + "id": "5e34bc6afa051598a410565f753437adb9c9698a", + "ctime": 1339157555.1697254 + }, + "b940912958c7baf5b6c962e2a53418d2ad0a981a": { + "path": "./images/350px/DSC_3571.jpg", + "preview": { + "350px": "./images/350px/DSC_3571.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b940912958c7baf5b6c962e2a53418d2ad0a981a%20-%20DSC_3571.jpg" + }, + "id": "b940912958c7baf5b6c962e2a53418d2ad0a981a", + "ctime": 1339157556.9222455 + }, + "103e1483c94c8583f84d7ec9b57a3ee761023ffc": { + "path": "./images/350px/DSC_3532.jpg", + "preview": { + "350px": "./images/350px/DSC_3532.jpg", + "150px": "./images/350px/.ImageGridCache/150px/103e1483c94c8583f84d7ec9b57a3ee761023ffc%20-%20DSC_3532.jpg" + }, + "id": "103e1483c94c8583f84d7ec9b57a3ee761023ffc", + "ctime": 1339157557.3428502 + }, + "d3af89819356985ff58af45e0be0e42967571b07": { + "path": "./images/350px/DSC_3560.jpg", + "preview": { + "350px": "./images/350px/DSC_3560.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d3af89819356985ff58af45e0be0e42967571b07%20-%20DSC_3560.jpg" + }, + "id": "d3af89819356985ff58af45e0be0e42967571b07", + "ctime": 1339157557.0524328 + }, + "f4c4b1666be5cefb115865bcae058dff4179628a": { + "path": "./images/350px/DSC_3662.jpg", + "preview": { + "350px": "./images/350px/DSC_3662.jpg", + "150px": "./images/350px/.ImageGridCache/150px/f4c4b1666be5cefb115865bcae058dff4179628a%20-%20DSC_3662.jpg" + }, + "id": "f4c4b1666be5cefb115865bcae058dff4179628a", + "ctime": 1339157556.0710216 + }, + "87a689575d7b922dcb36ca5cbf1230867ec6b50a": { + "path": "./images/350px/DSC_3588.jpg", + "preview": { + "350px": "./images/350px/DSC_3588.jpg", + "150px": "./images/350px/.ImageGridCache/150px/87a689575d7b922dcb36ca5cbf1230867ec6b50a%20-%20DSC_3588.jpg" + }, + "id": "87a689575d7b922dcb36ca5cbf1230867ec6b50a", + "ctime": 1339157556.7720294 + }, + "1a0c5c2dc8bb7292523ea469afebdffc0d7df9ce": { + "path": "./images/350px/DSC_3601.jpg", + "preview": { + "350px": "./images/350px/DSC_3601.jpg", + "150px": "./images/350px/.ImageGridCache/150px/1a0c5c2dc8bb7292523ea469afebdffc0d7df9ce%20-%20DSC_3601.jpg" + }, + "id": "1a0c5c2dc8bb7292523ea469afebdffc0d7df9ce", + "ctime": 1339157556.6518567 + }, + "5b6f4cc9037ea5df8b2144dd2f377da2f986263f": { + "path": "./images/350px/DSC_3675.jpg", + "preview": { + "350px": "./images/350px/DSC_3675.jpg", + "150px": "./images/350px/.ImageGridCache/150px/5b6f4cc9037ea5df8b2144dd2f377da2f986263f%20-%20DSC_3675.jpg" + }, + "id": "5b6f4cc9037ea5df8b2144dd2f377da2f986263f", + "ctime": 1339157555.980892 + }, + "c34825a546a3c3d2a903318640c06b20a31594e0": { + "path": "./images/350px/DSC_3592.jpg", + "preview": { + "350px": "./images/350px/DSC_3592.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c34825a546a3c3d2a903318640c06b20a31594e0%20-%20DSC_3592.jpg" + }, + "id": "c34825a546a3c3d2a903318640c06b20a31594e0", + "ctime": 1339157556.7520008 + }, + "084fc81368da052625d176996415baa588e065b7": { + "path": "./images/350px/DSC_3547.jpg", + "preview": { + "350px": "./images/350px/DSC_3547.jpg", + "150px": "./images/350px/.ImageGridCache/150px/084fc81368da052625d176996415baa588e065b7%20-%20DSC_3547.jpg" + }, + "id": "084fc81368da052625d176996415baa588e065b7", + "ctime": 1339157557.1926343 + }, + "9944d0a8bc006337885bf2b3f78f7c3489ce09a8": { + "path": "./images/350px/DSC_3552.jpg", + "preview": { + "350px": "./images/350px/DSC_3552.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9944d0a8bc006337885bf2b3f78f7c3489ce09a8%20-%20DSC_3552.jpg" + }, + "id": "9944d0a8bc006337885bf2b3f78f7c3489ce09a8", + "ctime": 1339157557.1425624 + }, + "ed817d0844a595ca592c91910641168fea01698d": { + "path": "./images/350px/DSC_3766.jpg", + "preview": { + "350px": "./images/350px/DSC_3766.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ed817d0844a595ca592c91910641168fea01698d%20-%20DSC_3766.jpg" + }, + "id": "ed817d0844a595ca592c91910641168fea01698d", + "ctime": 1339157555.2698696 + }, + "efdeaaea84474051c79b0c359c1d648c9101ec93": { + "path": "./images/350px/DSC_3697.jpg", + "preview": { + "350px": "./images/350px/DSC_3697.jpg", + "150px": "./images/350px/.ImageGridCache/150px/efdeaaea84474051c79b0c359c1d648c9101ec93%20-%20DSC_3697.jpg" + }, + "id": "efdeaaea84474051c79b0c359c1d648c9101ec93", + "ctime": 1339157555.8707335 + }, + "db484a95309d521e00e773bc5aa66174eb926736": { + "path": "./images/350px/DSC_3731.jpg", + "preview": { + "350px": "./images/350px/DSC_3731.jpg", + "150px": "./images/350px/.ImageGridCache/150px/db484a95309d521e00e773bc5aa66174eb926736%20-%20DSC_3731.jpg" + }, + "id": "db484a95309d521e00e773bc5aa66174eb926736", + "ctime": 1339157555.560287 + }, + "865aef2863c7be0add1ae63eb6028ed8f6cdfbc0": { + "path": "./images/350px/DSC_3573.jpg", + "preview": { + "350px": "./images/350px/DSC_3573.jpg", + "150px": "./images/350px/.ImageGridCache/150px/865aef2863c7be0add1ae63eb6028ed8f6cdfbc0%20-%20DSC_3573.jpg" + }, + "id": "865aef2863c7be0add1ae63eb6028ed8f6cdfbc0", + "ctime": 1339157556.8922024 + }, + "6a27af782bb1faec0f5e87236936ab33e0a63666": { + "path": "./images/350px/DSC_3559.jpg", + "preview": { + "350px": "./images/350px/DSC_3559.jpg", + "150px": "./images/350px/.ImageGridCache/150px/6a27af782bb1faec0f5e87236936ab33e0a63666%20-%20DSC_3559.jpg" + }, + "id": "6a27af782bb1faec0f5e87236936ab33e0a63666", + "ctime": 1339157557.0724616 + }, + "2cb16d48aecca8582bdf207b3a5ccbf8d146d377": { + "path": "./images/350px/DSC_3506.jpg", + "preview": { + "350px": "./images/350px/DSC_3506.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2cb16d48aecca8582bdf207b3a5ccbf8d146d377%20-%20DSC_3506.jpg" + }, + "id": "2cb16d48aecca8582bdf207b3a5ccbf8d146d377", + "ctime": 1339157557.5731814 + }, + "b28436f4076c310e2161124431a76fbe51de4f02": { + "path": "./images/350px/DSC_3568.jpg", + "preview": { + "350px": "./images/350px/DSC_3568.jpg", + "150px": "./images/350px/.ImageGridCache/150px/b28436f4076c310e2161124431a76fbe51de4f02%20-%20DSC_3568.jpg" + }, + "id": "b28436f4076c310e2161124431a76fbe51de4f02", + "ctime": 1339157556.9723175 + }, + "e24403b61b68ade228cbb7a905ad529ebc5a0d5d": { + "path": "./images/350px/DSC_3756.jpg", + "preview": { + "350px": "./images/350px/DSC_3756.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e24403b61b68ade228cbb7a905ad529ebc5a0d5d%20-%20DSC_3756.jpg" + }, + "id": "e24403b61b68ade228cbb7a905ad529ebc5a0d5d", + "ctime": 1339157555.3299558 + }, + "343fa36ce0eb0bbcf1ec0f26fc64db30062b9cf7": { + "path": "./images/350px/DSC_3602.jpg", + "preview": { + "350px": "./images/350px/DSC_3602.jpg", + "150px": "./images/350px/.ImageGridCache/150px/343fa36ce0eb0bbcf1ec0f26fc64db30062b9cf7%20-%20DSC_3602.jpg" + }, + "id": "343fa36ce0eb0bbcf1ec0f26fc64db30062b9cf7", + "ctime": 1339157556.6318278 + }, + "ac5ffe9eef55ab1acfe4ece727e5611fff64736e": { + "path": "./images/350px/DSC_3581.jpg", + "preview": { + "350px": "./images/350px/DSC_3581.jpg", + "150px": "./images/350px/.ImageGridCache/150px/ac5ffe9eef55ab1acfe4ece727e5611fff64736e%20-%20DSC_3581.jpg" + }, + "id": "ac5ffe9eef55ab1acfe4ece727e5611fff64736e", + "ctime": 1339157556.7920582 + }, + "8cc6ddcd0950aa90e726d3cac0318c5497151802": { + "path": "./images/350px/DSC_3524.jpg", + "preview": { + "350px": "./images/350px/DSC_3524.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8cc6ddcd0950aa90e726d3cac0318c5497151802%20-%20DSC_3524.jpg" + }, + "id": "8cc6ddcd0950aa90e726d3cac0318c5497151802", + "ctime": 1339157557.4029367 + }, + "6d644b5939a5af48357159fb6192358ed840cd5b": { + "path": "./images/350px/DSC_3593.jpg", + "preview": { + "350px": "./images/350px/DSC_3593.jpg", + "150px": "./images/350px/.ImageGridCache/150px/6d644b5939a5af48357159fb6192358ed840cd5b%20-%20DSC_3593.jpg" + }, + "id": "6d644b5939a5af48357159fb6192358ed840cd5b", + "ctime": 1339157556.731972 + }, + "81168febbf7b1cfc42e12f58f1234a7d97bd752e": { + "path": "./images/350px/DSC_3741.jpg", + "preview": { + "350px": "./images/350px/DSC_3741.jpg", + "150px": "./images/350px/.ImageGridCache/150px/81168febbf7b1cfc42e12f58f1234a7d97bd752e%20-%20DSC_3741.jpg" + }, + "id": "81168febbf7b1cfc42e12f58f1234a7d97bd752e", + "ctime": 1339157555.4901862 + }, + "62375d60c740a5fad13739509acbb488b95929db": { + "path": "./images/350px/DSC_3816.jpg", + "preview": { + "350px": "./images/350px/DSC_3816.jpg", + "150px": "./images/350px/.ImageGridCache/150px/62375d60c740a5fad13739509acbb488b95929db%20-%20DSC_3816.jpg" + }, + "id": "62375d60c740a5fad13739509acbb488b95929db", + "ctime": 1339157555.009495 + }, + "561ab8630cb8802d8ca8993928f3417f2d009926": { + "path": "./images/350px/DSC_3614.jpg", + "preview": { + "350px": "./images/350px/DSC_3614.jpg", + "150px": "./images/350px/.ImageGridCache/150px/561ab8630cb8802d8ca8993928f3417f2d009926%20-%20DSC_3614.jpg" + }, + "id": "561ab8630cb8802d8ca8993928f3417f2d009926", + "ctime": 1339157556.5216694 + }, + "4ae58ed1f0ff3ae90144161f74ea83ffe9b399ff": { + "path": "./images/350px/DSC_3650.jpg", + "preview": { + "350px": "./images/350px/DSC_3650.jpg", + "150px": "./images/350px/.ImageGridCache/150px/4ae58ed1f0ff3ae90144161f74ea83ffe9b399ff%20-%20DSC_3650.jpg" + }, + "id": "4ae58ed1f0ff3ae90144161f74ea83ffe9b399ff", + "ctime": 1339157556.18118 + }, + "8b7f0e1bcd5093ccf53614850175999f4ea51614": { + "path": "./images/350px/DSC_3736.jpg", + "preview": { + "350px": "./images/350px/DSC_3736.jpg", + "150px": "./images/350px/.ImageGridCache/150px/8b7f0e1bcd5093ccf53614850175999f4ea51614%20-%20DSC_3736.jpg" + }, + "id": "8b7f0e1bcd5093ccf53614850175999f4ea51614", + "ctime": 1339157555.5302439 + }, + "2a6911830835adfb62756bca6b89155173df2c40": { + "path": "./images/350px/DSC_3503.jpg", + "preview": { + "350px": "./images/350px/DSC_3503.jpg", + "150px": "./images/350px/.ImageGridCache/150px/2a6911830835adfb62756bca6b89155173df2c40%20-%20DSC_3503.jpg" + }, + "id": "2a6911830835adfb62756bca6b89155173df2c40", + "ctime": 1339157557.613239 + }, + "c1c3d63a61297548b66880c8312381dc7daf7ceb": { + "path": "./images/350px/DSC_3659.jpg", + "preview": { + "350px": "./images/350px/DSC_3659.jpg", + "150px": "./images/350px/.ImageGridCache/150px/c1c3d63a61297548b66880c8312381dc7daf7ceb%20-%20DSC_3659.jpg" + }, + "id": "c1c3d63a61297548b66880c8312381dc7daf7ceb", + "ctime": 1339157556.1210935 + }, + "44ff5d7ace9b5cee8c34af97a97b35ac8edb17d4": { + "path": "./images/350px/DSC_3525.jpg", + "preview": { + "350px": "./images/350px/DSC_3525.jpg", + "150px": "./images/350px/.ImageGridCache/150px/44ff5d7ace9b5cee8c34af97a97b35ac8edb17d4%20-%20DSC_3525.jpg" + }, + "id": "44ff5d7ace9b5cee8c34af97a97b35ac8edb17d4", + "ctime": 1339157557.3929224 + }, + "bb028e5a8e2c7656139b5c740bd9d34d2f23790a": { + "path": "./images/350px/DSC_3710.jpg", + "preview": { + "350px": "./images/350px/DSC_3710.jpg", + "150px": "./images/350px/.ImageGridCache/150px/bb028e5a8e2c7656139b5c740bd9d34d2f23790a%20-%20DSC_3710.jpg" + }, + "id": "bb028e5a8e2c7656139b5c740bd9d34d2f23790a", + "ctime": 1339157555.730532 + }, + "454b3e20244240c7f1095d763a9ad9b2217470fd": { + "path": "./images/350px/DSC_3752.jpg", + "preview": { + "350px": "./images/350px/DSC_3752.jpg", + "150px": "./images/350px/.ImageGridCache/150px/454b3e20244240c7f1095d763a9ad9b2217470fd%20-%20DSC_3752.jpg" + }, + "id": "454b3e20244240c7f1095d763a9ad9b2217470fd", + "ctime": 1339157555.4100711 + }, + "63ba28ad920a5d9b21741b54657e61d422bd2943": { + "path": "./images/350px/DSC_3660.jpg", + "preview": { + "350px": "./images/350px/DSC_3660.jpg", + "150px": "./images/350px/.ImageGridCache/150px/63ba28ad920a5d9b21741b54657e61d422bd2943%20-%20DSC_3660.jpg" + }, + "id": "63ba28ad920a5d9b21741b54657e61d422bd2943", + "ctime": 1339157556.1010647 + }, + "22d7c116e9e6961e86d44d0b9be5524279def148": { + "path": "./images/350px/DSC_3807.jpg", + "preview": { + "350px": "./images/350px/DSC_3807.jpg", + "150px": "./images/350px/.ImageGridCache/150px/22d7c116e9e6961e86d44d0b9be5524279def148%20-%20DSC_3807.jpg" + }, + "id": "22d7c116e9e6961e86d44d0b9be5524279def148", + "ctime": 1339157555.129668 + }, + "30c593732188a660f91d526716d6fc3177e8426e": { + "path": "./images/350px/DSC_3640.jpg", + "preview": { + "350px": "./images/350px/DSC_3640.jpg", + "150px": "./images/350px/.ImageGridCache/150px/30c593732188a660f91d526716d6fc3177e8426e%20-%20DSC_3640.jpg" + }, + "id": "30c593732188a660f91d526716d6fc3177e8426e", + "ctime": 1339157556.2713096 + }, + "968b006dd5a13cee38816c14cdc5aa2e21f4cc5c": { + "path": "./images/350px/DSC_3643.jpg", + "preview": { + "350px": "./images/350px/DSC_3643.jpg", + "150px": "./images/350px/.ImageGridCache/150px/968b006dd5a13cee38816c14cdc5aa2e21f4cc5c%20-%20DSC_3643.jpg" + }, + "id": "968b006dd5a13cee38816c14cdc5aa2e21f4cc5c", + "ctime": 1339157556.231252 + }, + "0300bb0a25038baf4b49690254a53e4b52450682": { + "path": "./images/350px/DSC_3685.jpg", + "preview": { + "350px": "./images/350px/DSC_3685.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0300bb0a25038baf4b49690254a53e4b52450682%20-%20DSC_3685.jpg" + }, + "id": "0300bb0a25038baf4b49690254a53e4b52450682", + "ctime": 1339157555.93082 + }, + "9cc7a36f2b0e25d58518386066232bd99d657c2f": { + "path": "./images/350px/DSC_3542.jpg", + "preview": { + "350px": "./images/350px/DSC_3542.jpg", + "150px": "./images/350px/.ImageGridCache/150px/9cc7a36f2b0e25d58518386066232bd99d657c2f%20-%20DSC_3542.jpg" + }, + "id": "9cc7a36f2b0e25d58518386066232bd99d657c2f", + "ctime": 1339157557.2727494 + }, + "3853d3af94dab47757d1eaeb1de2409a5beaefa9": { + "path": "./images/350px/DSC_3626.jpg", + "preview": { + "350px": "./images/350px/DSC_3626.jpg", + "150px": "./images/350px/.ImageGridCache/150px/3853d3af94dab47757d1eaeb1de2409a5beaefa9%20-%20DSC_3626.jpg" + }, + "id": "3853d3af94dab47757d1eaeb1de2409a5beaefa9", + "ctime": 1339157556.43154 + }, + "d6fe7efd25781b72643f6be80a5deed280476da1": { + "path": "./images/350px/DSC_3813.jpg", + "preview": { + "350px": "./images/350px/DSC_3813.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d6fe7efd25781b72643f6be80a5deed280476da1%20-%20DSC_3813.jpg" + }, + "id": "d6fe7efd25781b72643f6be80a5deed280476da1", + "ctime": 1339157555.0595672 + }, + "d08ce07f49247a274d7f58d361da2dd227e106f4": { + "path": "./images/350px/DSC_3637.jpg", + "preview": { + "350px": "./images/350px/DSC_3637.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d08ce07f49247a274d7f58d361da2dd227e106f4%20-%20DSC_3637.jpg" + }, + "id": "d08ce07f49247a274d7f58d361da2dd227e106f4", + "ctime": 1339157556.3013527 + }, + "e28a78f65a060366d9ff587e322fb9e7a640781e": { + "path": "./images/350px/DSC_3546.jpg", + "preview": { + "350px": "./images/350px/DSC_3546.jpg", + "150px": "./images/350px/.ImageGridCache/150px/e28a78f65a060366d9ff587e322fb9e7a640781e%20-%20DSC_3546.jpg" + }, + "id": "e28a78f65a060366d9ff587e322fb9e7a640781e", + "ctime": 1339157557.2026486 + }, + "63156551e3aaf9777a0506890d70f41d2f3ce987": { + "path": "./images/350px/DSC_3628.jpg", + "preview": { + "350px": "./images/350px/DSC_3628.jpg", + "150px": "./images/350px/.ImageGridCache/150px/63156551e3aaf9777a0506890d70f41d2f3ce987%20-%20DSC_3628.jpg" + }, + "id": "63156551e3aaf9777a0506890d70f41d2f3ce987", + "ctime": 1339157556.3814678 + }, + "0813d919a51cf4046b988858b919cac9a05f5d6d": { + "path": "./images/350px/DSC_3730.jpg", + "preview": { + "350px": "./images/350px/DSC_3730.jpg", + "150px": "./images/350px/.ImageGridCache/150px/0813d919a51cf4046b988858b919cac9a05f5d6d%20-%20DSC_3730.jpg" + }, + "id": "0813d919a51cf4046b988858b919cac9a05f5d6d", + "ctime": 1339157555.5803158 + }, + "d5f78b936331ecd255e7a69caf658540925103a4": { + "path": "./images/350px/DSC_3549.jpg", + "preview": { + "350px": "./images/350px/DSC_3549.jpg", + "150px": "./images/350px/.ImageGridCache/150px/d5f78b936331ecd255e7a69caf658540925103a4%20-%20DSC_3549.jpg" + }, + "id": "d5f78b936331ecd255e7a69caf658540925103a4", + "ctime": 1339157557.1525767 + } + } + ] +} diff --git a/ui (gen1)/images/350px/DSC_3501.jpg b/ui (gen1)/images/350px/DSC_3501.jpg new file mode 100755 index 00000000..f5686078 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3501.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3503.jpg b/ui (gen1)/images/350px/DSC_3503.jpg new file mode 100755 index 00000000..942f1459 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3503.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3504.jpg b/ui (gen1)/images/350px/DSC_3504.jpg new file mode 100755 index 00000000..ebe9ff89 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3504.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3506.jpg b/ui (gen1)/images/350px/DSC_3506.jpg new file mode 100755 index 00000000..a72221ce Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3506.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3508.jpg b/ui (gen1)/images/350px/DSC_3508.jpg new file mode 100755 index 00000000..df31df22 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3508.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3509.jpg b/ui (gen1)/images/350px/DSC_3509.jpg new file mode 100755 index 00000000..2f06d28d Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3509.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3511.jpg b/ui (gen1)/images/350px/DSC_3511.jpg new file mode 100755 index 00000000..380c0026 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3511.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3512.jpg b/ui (gen1)/images/350px/DSC_3512.jpg new file mode 100755 index 00000000..7526df1e Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3512.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3516.jpg b/ui (gen1)/images/350px/DSC_3516.jpg new file mode 100755 index 00000000..df1289fd Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3516.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3517.jpg b/ui (gen1)/images/350px/DSC_3517.jpg new file mode 100755 index 00000000..74febe67 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3517.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3518.jpg b/ui (gen1)/images/350px/DSC_3518.jpg new file mode 100755 index 00000000..ad71d216 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3518.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3519.jpg b/ui (gen1)/images/350px/DSC_3519.jpg new file mode 100755 index 00000000..77d291e3 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3519.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3522.jpg b/ui (gen1)/images/350px/DSC_3522.jpg new file mode 100755 index 00000000..6a207388 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3522.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3524.jpg b/ui (gen1)/images/350px/DSC_3524.jpg new file mode 100755 index 00000000..f0dce75a Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3524.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3525.jpg b/ui (gen1)/images/350px/DSC_3525.jpg new file mode 100755 index 00000000..4291a51f Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3525.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3528.jpg b/ui (gen1)/images/350px/DSC_3528.jpg new file mode 100755 index 00000000..295b5429 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3528.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3530.jpg b/ui (gen1)/images/350px/DSC_3530.jpg new file mode 100755 index 00000000..aa409e1a Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3530.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3532.jpg b/ui (gen1)/images/350px/DSC_3532.jpg new file mode 100755 index 00000000..3751ad44 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3532.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3534.jpg b/ui (gen1)/images/350px/DSC_3534.jpg new file mode 100755 index 00000000..c2b3359b Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3534.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3535.jpg b/ui (gen1)/images/350px/DSC_3535.jpg new file mode 100755 index 00000000..d273d6ab Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3535.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3537.jpg b/ui (gen1)/images/350px/DSC_3537.jpg new file mode 100755 index 00000000..3c7108eb Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3537.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3542.jpg b/ui (gen1)/images/350px/DSC_3542.jpg new file mode 100755 index 00000000..b95d38fd Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3542.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3543.jpg b/ui (gen1)/images/350px/DSC_3543.jpg new file mode 100755 index 00000000..839937ca Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3543.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3545.jpg b/ui (gen1)/images/350px/DSC_3545.jpg new file mode 100755 index 00000000..9ee879f1 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3545.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3546.jpg b/ui (gen1)/images/350px/DSC_3546.jpg new file mode 100755 index 00000000..08895d39 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3546.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3547.jpg b/ui (gen1)/images/350px/DSC_3547.jpg new file mode 100755 index 00000000..71381ceb Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3547.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3548.jpg b/ui (gen1)/images/350px/DSC_3548.jpg new file mode 100755 index 00000000..b4fef59f Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3548.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3549.jpg b/ui (gen1)/images/350px/DSC_3549.jpg new file mode 100755 index 00000000..a61cbecd Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3549.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3552.jpg b/ui (gen1)/images/350px/DSC_3552.jpg new file mode 100755 index 00000000..be7baeaf Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3552.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3553.jpg b/ui (gen1)/images/350px/DSC_3553.jpg new file mode 100755 index 00000000..34f773c5 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3553.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3555.jpg b/ui (gen1)/images/350px/DSC_3555.jpg new file mode 100755 index 00000000..2c112391 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3555.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3558.jpg b/ui (gen1)/images/350px/DSC_3558.jpg new file mode 100755 index 00000000..cfdce149 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3558.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3559.jpg b/ui (gen1)/images/350px/DSC_3559.jpg new file mode 100755 index 00000000..2b79ea2b Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3559.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3560.jpg b/ui (gen1)/images/350px/DSC_3560.jpg new file mode 100755 index 00000000..dc4757ff Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3560.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3561.jpg b/ui (gen1)/images/350px/DSC_3561.jpg new file mode 100755 index 00000000..4ee510c0 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3561.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3562.jpg b/ui (gen1)/images/350px/DSC_3562.jpg new file mode 100755 index 00000000..dbe2de0e Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3562.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3565.jpg b/ui (gen1)/images/350px/DSC_3565.jpg new file mode 100755 index 00000000..ae2a8992 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3565.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3566.jpg b/ui (gen1)/images/350px/DSC_3566.jpg new file mode 100755 index 00000000..ae520ced Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3566.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3568.jpg b/ui (gen1)/images/350px/DSC_3568.jpg new file mode 100755 index 00000000..3aecf12a Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3568.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3569.jpg b/ui (gen1)/images/350px/DSC_3569.jpg new file mode 100755 index 00000000..d8f077eb Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3569.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3570.jpg b/ui (gen1)/images/350px/DSC_3570.jpg new file mode 100755 index 00000000..3b32f1d6 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3570.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3571.jpg b/ui (gen1)/images/350px/DSC_3571.jpg new file mode 100755 index 00000000..527dcebd Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3571.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3572.jpg b/ui (gen1)/images/350px/DSC_3572.jpg new file mode 100755 index 00000000..dd82bf85 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3572.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3573.jpg b/ui (gen1)/images/350px/DSC_3573.jpg new file mode 100755 index 00000000..7e8bdf97 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3573.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3574.jpg b/ui (gen1)/images/350px/DSC_3574.jpg new file mode 100755 index 00000000..33594c6f Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3574.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3575.jpg b/ui (gen1)/images/350px/DSC_3575.jpg new file mode 100755 index 00000000..a218ce04 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3575.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3576.jpg b/ui (gen1)/images/350px/DSC_3576.jpg new file mode 100755 index 00000000..ed4221e5 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3576.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3578.jpg b/ui (gen1)/images/350px/DSC_3578.jpg new file mode 100755 index 00000000..c6390714 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3578.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3581.jpg b/ui (gen1)/images/350px/DSC_3581.jpg new file mode 100755 index 00000000..fbcec166 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3581.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3586.jpg b/ui (gen1)/images/350px/DSC_3586.jpg new file mode 100755 index 00000000..546a2041 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3586.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3588.jpg b/ui (gen1)/images/350px/DSC_3588.jpg new file mode 100755 index 00000000..bee54b41 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3588.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3590.jpg b/ui (gen1)/images/350px/DSC_3590.jpg new file mode 100755 index 00000000..f538abd0 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3590.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3592.jpg b/ui (gen1)/images/350px/DSC_3592.jpg new file mode 100755 index 00000000..14df3519 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3592.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3593.jpg b/ui (gen1)/images/350px/DSC_3593.jpg new file mode 100755 index 00000000..1a719453 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3593.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3594.jpg b/ui (gen1)/images/350px/DSC_3594.jpg new file mode 100755 index 00000000..d7aeffe3 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3594.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3595.jpg b/ui (gen1)/images/350px/DSC_3595.jpg new file mode 100755 index 00000000..e195dcd2 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3595.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3598.jpg b/ui (gen1)/images/350px/DSC_3598.jpg new file mode 100755 index 00000000..bc6399cc Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3598.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3599.jpg b/ui (gen1)/images/350px/DSC_3599.jpg new file mode 100755 index 00000000..fe739107 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3599.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3601.jpg b/ui (gen1)/images/350px/DSC_3601.jpg new file mode 100755 index 00000000..9b445a48 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3601.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3602.jpg b/ui (gen1)/images/350px/DSC_3602.jpg new file mode 100755 index 00000000..780cb87f Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3602.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3605.jpg b/ui (gen1)/images/350px/DSC_3605.jpg new file mode 100755 index 00000000..b27e0606 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3605.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3606.jpg b/ui (gen1)/images/350px/DSC_3606.jpg new file mode 100755 index 00000000..b008088a Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3606.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3607.jpg b/ui (gen1)/images/350px/DSC_3607.jpg new file mode 100755 index 00000000..ef021483 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3607.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3608.jpg b/ui (gen1)/images/350px/DSC_3608.jpg new file mode 100755 index 00000000..5f3b1894 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3608.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3611.jpg b/ui (gen1)/images/350px/DSC_3611.jpg new file mode 100755 index 00000000..d5426742 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3611.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3613.jpg b/ui (gen1)/images/350px/DSC_3613.jpg new file mode 100755 index 00000000..361946bf Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3613.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3614.jpg b/ui (gen1)/images/350px/DSC_3614.jpg new file mode 100755 index 00000000..b11c4d9f Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3614.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3615.jpg b/ui (gen1)/images/350px/DSC_3615.jpg new file mode 100755 index 00000000..ab8ffcca Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3615.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3619.jpg b/ui (gen1)/images/350px/DSC_3619.jpg new file mode 100755 index 00000000..30b0c7b5 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3619.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3623.jpg b/ui (gen1)/images/350px/DSC_3623.jpg new file mode 100755 index 00000000..9c6646aa Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3623.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3624.jpg b/ui (gen1)/images/350px/DSC_3624.jpg new file mode 100755 index 00000000..226e28a0 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3624.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3626.jpg b/ui (gen1)/images/350px/DSC_3626.jpg new file mode 100755 index 00000000..271361c6 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3626.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3627.jpg b/ui (gen1)/images/350px/DSC_3627.jpg new file mode 100755 index 00000000..611126da Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3627.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3628.jpg b/ui (gen1)/images/350px/DSC_3628.jpg new file mode 100755 index 00000000..855e8789 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3628.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3631.jpg b/ui (gen1)/images/350px/DSC_3631.jpg new file mode 100755 index 00000000..f6ac5eae Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3631.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3632.jpg b/ui (gen1)/images/350px/DSC_3632.jpg new file mode 100755 index 00000000..d9b96a29 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3632.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3633.jpg b/ui (gen1)/images/350px/DSC_3633.jpg new file mode 100755 index 00000000..19b64c99 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3633.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3637.jpg b/ui (gen1)/images/350px/DSC_3637.jpg new file mode 100755 index 00000000..404ccd4d Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3637.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3638.jpg b/ui (gen1)/images/350px/DSC_3638.jpg new file mode 100755 index 00000000..98d940dc Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3638.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3640.jpg b/ui (gen1)/images/350px/DSC_3640.jpg new file mode 100755 index 00000000..c9e201bb Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3640.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3641.jpg b/ui (gen1)/images/350px/DSC_3641.jpg new file mode 100755 index 00000000..60321f1a Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3641.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3643.jpg b/ui (gen1)/images/350px/DSC_3643.jpg new file mode 100755 index 00000000..0b0baa2a Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3643.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3645.jpg b/ui (gen1)/images/350px/DSC_3645.jpg new file mode 100755 index 00000000..0874a7b9 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3645.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3648.jpg b/ui (gen1)/images/350px/DSC_3648.jpg new file mode 100755 index 00000000..2ffefa5b Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3648.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3650.jpg b/ui (gen1)/images/350px/DSC_3650.jpg new file mode 100755 index 00000000..cac2145b Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3650.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3652.jpg b/ui (gen1)/images/350px/DSC_3652.jpg new file mode 100755 index 00000000..424bff76 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3652.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3653.jpg b/ui (gen1)/images/350px/DSC_3653.jpg new file mode 100755 index 00000000..3e668c4e Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3653.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3656.jpg b/ui (gen1)/images/350px/DSC_3656.jpg new file mode 100755 index 00000000..c20024c5 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3656.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3659.jpg b/ui (gen1)/images/350px/DSC_3659.jpg new file mode 100755 index 00000000..01e530b1 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3659.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3660.jpg b/ui (gen1)/images/350px/DSC_3660.jpg new file mode 100755 index 00000000..e6bb9e96 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3660.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3661.jpg b/ui (gen1)/images/350px/DSC_3661.jpg new file mode 100755 index 00000000..a5294379 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3661.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3662.jpg b/ui (gen1)/images/350px/DSC_3662.jpg new file mode 100755 index 00000000..27054efe Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3662.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3664.jpg b/ui (gen1)/images/350px/DSC_3664.jpg new file mode 100755 index 00000000..f13d09bd Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3664.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3666.jpg b/ui (gen1)/images/350px/DSC_3666.jpg new file mode 100755 index 00000000..6f4f361f Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3666.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3670.jpg b/ui (gen1)/images/350px/DSC_3670.jpg new file mode 100755 index 00000000..2275c512 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3670.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3673.jpg b/ui (gen1)/images/350px/DSC_3673.jpg new file mode 100755 index 00000000..b89fb6b8 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3673.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3675.jpg b/ui (gen1)/images/350px/DSC_3675.jpg new file mode 100755 index 00000000..741355dc Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3675.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3677.jpg b/ui (gen1)/images/350px/DSC_3677.jpg new file mode 100755 index 00000000..fd122b36 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3677.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3682.jpg b/ui (gen1)/images/350px/DSC_3682.jpg new file mode 100755 index 00000000..237aedcb Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3682.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3685.jpg b/ui (gen1)/images/350px/DSC_3685.jpg new file mode 100755 index 00000000..9736a849 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3685.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3686.jpg b/ui (gen1)/images/350px/DSC_3686.jpg new file mode 100755 index 00000000..1b22268d Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3686.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3693.jpg b/ui (gen1)/images/350px/DSC_3693.jpg new file mode 100755 index 00000000..22546b75 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3693.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3694.jpg b/ui (gen1)/images/350px/DSC_3694.jpg new file mode 100755 index 00000000..c326560a Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3694.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3697.jpg b/ui (gen1)/images/350px/DSC_3697.jpg new file mode 100755 index 00000000..27fde691 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3697.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3698.jpg b/ui (gen1)/images/350px/DSC_3698.jpg new file mode 100755 index 00000000..dc585df0 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3698.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3699.jpg b/ui (gen1)/images/350px/DSC_3699.jpg new file mode 100755 index 00000000..3e033039 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3699.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3701.jpg b/ui (gen1)/images/350px/DSC_3701.jpg new file mode 100755 index 00000000..dd26c825 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3701.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3703.jpg b/ui (gen1)/images/350px/DSC_3703.jpg new file mode 100755 index 00000000..6f3a9d5b Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3703.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3705.jpg b/ui (gen1)/images/350px/DSC_3705.jpg new file mode 100755 index 00000000..dca1a419 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3705.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3708.jpg b/ui (gen1)/images/350px/DSC_3708.jpg new file mode 100755 index 00000000..15317706 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3708.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3710.jpg b/ui (gen1)/images/350px/DSC_3710.jpg new file mode 100755 index 00000000..879e126f Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3710.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3711.jpg b/ui (gen1)/images/350px/DSC_3711.jpg new file mode 100755 index 00000000..56a92e4d Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3711.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3712.jpg b/ui (gen1)/images/350px/DSC_3712.jpg new file mode 100755 index 00000000..f06eca93 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3712.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3713.jpg b/ui (gen1)/images/350px/DSC_3713.jpg new file mode 100755 index 00000000..675b47ab Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3713.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3714.jpg b/ui (gen1)/images/350px/DSC_3714.jpg new file mode 100755 index 00000000..595f5dcb Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3714.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3716.jpg b/ui (gen1)/images/350px/DSC_3716.jpg new file mode 100755 index 00000000..43f87d99 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3716.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3722.jpg b/ui (gen1)/images/350px/DSC_3722.jpg new file mode 100755 index 00000000..a1d82cc0 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3722.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3723.jpg b/ui (gen1)/images/350px/DSC_3723.jpg new file mode 100755 index 00000000..a3044c64 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3723.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3726.jpg b/ui (gen1)/images/350px/DSC_3726.jpg new file mode 100755 index 00000000..47240cfe Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3726.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3727.jpg b/ui (gen1)/images/350px/DSC_3727.jpg new file mode 100755 index 00000000..770b9ce5 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3727.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3730.jpg b/ui (gen1)/images/350px/DSC_3730.jpg new file mode 100755 index 00000000..da20cafb Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3730.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3731.jpg b/ui (gen1)/images/350px/DSC_3731.jpg new file mode 100755 index 00000000..d7a54f24 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3731.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3733.jpg b/ui (gen1)/images/350px/DSC_3733.jpg new file mode 100755 index 00000000..dfe26139 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3733.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3736.jpg b/ui (gen1)/images/350px/DSC_3736.jpg new file mode 100755 index 00000000..2d32731d Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3736.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3737.jpg b/ui (gen1)/images/350px/DSC_3737.jpg new file mode 100755 index 00000000..d48eddd8 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3737.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3741.jpg b/ui (gen1)/images/350px/DSC_3741.jpg new file mode 100755 index 00000000..9228e6c4 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3741.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3744.jpg b/ui (gen1)/images/350px/DSC_3744.jpg new file mode 100755 index 00000000..173679bf Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3744.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3751.jpg b/ui (gen1)/images/350px/DSC_3751.jpg new file mode 100755 index 00000000..9dce9275 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3751.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3752.jpg b/ui (gen1)/images/350px/DSC_3752.jpg new file mode 100755 index 00000000..a93751ef Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3752.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3753.jpg b/ui (gen1)/images/350px/DSC_3753.jpg new file mode 100755 index 00000000..86614d40 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3753.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3755.jpg b/ui (gen1)/images/350px/DSC_3755.jpg new file mode 100755 index 00000000..97dc23fe Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3755.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3756.jpg b/ui (gen1)/images/350px/DSC_3756.jpg new file mode 100755 index 00000000..d9f9e74a Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3756.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3757.jpg b/ui (gen1)/images/350px/DSC_3757.jpg new file mode 100755 index 00000000..57bfedbd Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3757.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3763.jpg b/ui (gen1)/images/350px/DSC_3763.jpg new file mode 100755 index 00000000..40c9ded2 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3763.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3766.jpg b/ui (gen1)/images/350px/DSC_3766.jpg new file mode 100755 index 00000000..aa5d93ac Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3766.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3781.jpg b/ui (gen1)/images/350px/DSC_3781.jpg new file mode 100755 index 00000000..4cba2297 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3781.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3783.jpg b/ui (gen1)/images/350px/DSC_3783.jpg new file mode 100755 index 00000000..59b56c89 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3783.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3787.jpg b/ui (gen1)/images/350px/DSC_3787.jpg new file mode 100755 index 00000000..f10d2517 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3787.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3790.jpg b/ui (gen1)/images/350px/DSC_3790.jpg new file mode 100755 index 00000000..810f1c3b Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3790.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3793.jpg b/ui (gen1)/images/350px/DSC_3793.jpg new file mode 100755 index 00000000..d3fc84c7 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3793.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3794.jpg b/ui (gen1)/images/350px/DSC_3794.jpg new file mode 100755 index 00000000..47c4a0a1 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3794.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3801.jpg b/ui (gen1)/images/350px/DSC_3801.jpg new file mode 100755 index 00000000..33be101c Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3801.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3807.jpg b/ui (gen1)/images/350px/DSC_3807.jpg new file mode 100755 index 00000000..5d2ec28d Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3807.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3812.jpg b/ui (gen1)/images/350px/DSC_3812.jpg new file mode 100755 index 00000000..f17e344d Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3812.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3813.jpg b/ui (gen1)/images/350px/DSC_3813.jpg new file mode 100755 index 00000000..b0aa051e Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3813.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3815.jpg b/ui (gen1)/images/350px/DSC_3815.jpg new file mode 100755 index 00000000..a9299cd1 Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3815.jpg differ diff --git a/ui (gen1)/images/350px/DSC_3816.jpg b/ui (gen1)/images/350px/DSC_3816.jpg new file mode 100755 index 00000000..a1f5ff6f Binary files /dev/null and b/ui (gen1)/images/350px/DSC_3816.jpg differ diff --git a/ui (gen1)/images/README b/ui (gen1)/images/README new file mode 100755 index 00000000..e69de29b diff --git a/ui/jquery-1.7.2.min.js b/ui (gen1)/jquery-1.7.2.min.js similarity index 100% rename from ui/jquery-1.7.2.min.js rename to ui (gen1)/jquery-1.7.2.min.js diff --git a/ui/jquery-ui-1.8.22.custom.min.js b/ui (gen1)/jquery-ui-1.8.22.custom.min.js similarity index 100% rename from ui/jquery-ui-1.8.22.custom.min.js rename to ui (gen1)/jquery-ui-1.8.22.custom.min.js diff --git a/ui/jquery.ImageGrid.js b/ui (gen1)/jquery.ImageGrid.js similarity index 100% rename from ui/jquery.ImageGrid.js rename to ui (gen1)/jquery.ImageGrid.js diff --git a/ui/jquery.ImageGrid.scafold.js b/ui (gen1)/jquery.ImageGrid.scafold.js similarity index 100% rename from ui/jquery.ImageGrid.scafold.js rename to ui (gen1)/jquery.ImageGrid.scafold.js diff --git a/ui/jquery.js b/ui (gen1)/jquery.js similarity index 100% rename from ui/jquery.js rename to ui (gen1)/jquery.js diff --git a/ui/jquery.touchSwipe.js b/ui (gen1)/jquery.touchSwipe.js similarity index 100% rename from ui/jquery.touchSwipe.js rename to ui (gen1)/jquery.touchSwipe.js diff --git a/ui/jstorage.js b/ui (gen1)/jstorage.js similarity index 100% rename from ui/jstorage.js rename to ui (gen1)/jstorage.js diff --git a/ui (gen1)/keybindings.js b/ui (gen1)/keybindings.js new file mode 100755 index 00000000..a431a0f3 --- /dev/null +++ b/ui (gen1)/keybindings.js @@ -0,0 +1,145 @@ +/*********************************************************************/ +// NOTE: use String.fromCharCode(code)... +// list of keys to be ignored by handler but still handled by the browser... + +var keybindings = { + // global bindings... + '*': { + title: 'Global', + doc: '', + + ignore: [ + 116, // F5 + 123, // F12 + ], + + // togglable modes and options... + 191: { + 'default': ImageGrid.showKeyboardBindings, // ? + 'ctrl': ImageGrid.showSetup, // ctrl+? + }, + 80: ImageGrid.showSetup, // p + 70: ImageGrid.toggleSingleImageMode, // f + 13: 70, // Enter + 83: ImageGrid.toggleSingleRibbonMode, // s + 84: ImageGrid.toggleSingleImageModeTransitions, // t + 65: ImageGrid.toggleTransitions, // a + 9: ImageGrid.toggleControls, // tab + 66: ImageGrid.toggleBackgroundModes, // b + 73: ImageGrid.toggleCurrentRibbonOpacity, // i + 78: ImageGrid.toggleInfo, // n + 77: toggleMarkers, // m + + 87: ImageGrid.saveState, // w + + 27: ImageGrid.closeOverlay, // Esc + + // ignore the modifiers (shift, alt, ctrl, caps)... + 16: function(){}, + 17: 16, + 18: 16, + 20: 16, // Caps Lock + + // refresh... + // XXX make this into a real action... + 116: function(){ return DEBUG?true:false }, // F5 + 112: 116, // F12 + }, + + + // overlay... + '.overlay-mode': { + title: 'Overlay mode', + doc: 'Overlay mode key bindings.', + + ignore: [ + 33, // PgUp + 34, // PgDown + 37, // Left + 39, // Right + 36, // Home + 32, // Space + 35, // End + 38, // Up + 40, // Down + ], + }, + + + // everything except overlays... + '.viewer *:not(.overlay-mode *)': { + title: 'Ribbon and Viewer', + doc: '', + + // zooming... + 187: ImageGrid.scaleContainerUp, // + + 189: ImageGrid.scaleContainerDown, // - + // zoom presets... + 48: { + 'default': ImageGrid.centerCurrentImage, // 0 + // XXX make this into a real action... + 'ctrl': ImageGrid.fitImage, // ctrl+0 + }, + 49: ImageGrid.fitImage, // 1 + 50: ImageGrid.fitTwoImages, // 2 + 51: ImageGrid.fitThreeImages, // 3 + 52: ImageGrid.fitFourImages, // 4 + 53: ImageGrid.fitFiveImages, // 5 + 54: ImageGrid.fitSixImages, // 6 + 55: ImageGrid.fitSevenImages, // 7 + 56: ImageGrid.fitEightImages, // 8 + 57: ImageGrid.fitNineImages, // 9 + + + // navigation... + 36: ImageGrid.firstImage, // Home + 219: 36, // [ + 35: ImageGrid.lastImage, // End + 221: 35, // ] + 37: { + 'default': ImageGrid.prevImage, // Right + 'ctrl': ImageGrid.prevScreenImages, // ctrl-Right + 'alt': ImageGrid.prevScreenImages, // alt-Right + }, + 8: 37, // BkSp + 188: 37, // < + 39: { + 'default': ImageGrid.nextImage, // Left + 'ctrl': ImageGrid.nextScreenImages, // ctrl-Left + 'alt': ImageGrid.nextScreenImages, // alt-Left + }, + 32: 39, // Space + 190: 39, // > + 186: ImageGrid.prevScreenImages, // ; + 222: ImageGrid.nextScreenImages, // ' + // move view... + // XXX should these be s-up, s-down, ... ?? + 75: ImageGrid.moveViewUp, // k + 74: ImageGrid.moveViewDown, // j + 72: ImageGrid.moveViewLeft, // h + 76: ImageGrid.moveViewRight, // l + // XXX use this to open... + //79: ImageGrid.centerCurrentImage, // o + + + // combined navigation with actions.. + 38: { + 'default': ImageGrid.focusAboveRibbon, // Up + 'shift': ImageGrid.shiftImageUp, // shift-Up + 'ctrl+shift': ImageGrid.shiftImageUpNewRibbon // ctrl-shift-Up + }, + 40: { + 'default': ImageGrid.focusBelowRibbon, // Down + 'shift': ImageGrid.shiftImageDown, // shift-Down + 'ctrl+shift': ImageGrid.shiftImageDownNewRibbon // ctrl-shift-Down + }, + + // misc actions... + 82: ImageGrid.reverseImageOrder, // r + } +} + + + +/*********************************************************************/ +// vim:set ts=4 sw=4 nowrap : diff --git a/ui/markers.css b/ui (gen1)/markers.css similarity index 100% rename from ui/markers.css rename to ui (gen1)/markers.css diff --git a/ui/markers.js b/ui (gen1)/markers.js similarity index 100% rename from ui/markers.js rename to ui (gen1)/markers.js diff --git a/ui/persistance.js b/ui (gen1)/persistance.js similarity index 100% rename from ui/persistance.js rename to ui (gen1)/persistance.js diff --git a/ui/single-image-mode.css b/ui (gen1)/single-image-mode.css similarity index 100% rename from ui/single-image-mode.css rename to ui (gen1)/single-image-mode.css diff --git a/ui/transitions.css b/ui (gen1)/transitions.css similarity index 100% rename from ui/transitions.css rename to ui (gen1)/transitions.css diff --git a/ui/wide-view-mode.css b/ui (gen1)/wide-view-mode.css similarity index 100% rename from ui/wide-view-mode.css rename to ui (gen1)/wide-view-mode.css diff --git a/ui/Gen3-TODO.otl b/ui/Gen3-TODO.otl deleted file mode 100755 index c4796262..00000000 --- a/ui/Gen3-TODO.otl +++ /dev/null @@ -1,182 +0,0 @@ -[_] 22% Gen 3 current todo - [_] 44% High priority - [_] BUG: aligning still sometimes gets off... - | ...after rotating a number of images - | - | happens when: - | - getScreenWidthInImages() < 2 - | - looking through images in one direction and back, some get misaligned - | ...this is stable behaviour by centerRibbon(...), - | calling it again will not fix this. - | moving next/prev will fix the issue until it comes back again - | - affected by LOAD_SCREENS and number of images in ribbon - | current figures: - | Ribbon: 18 - | Position going forward: 4 - | Position going back: 1 - | LOAD_SCREENS: 6 - | NOTE: changing LOAD_SCREENS moves the affected positions. - | NOTE: had a similar bug where some images still kept their - | prior sizing after recycling... - | ...check if centerRibbon(...) and correctImageProportionsForRotation(...) - | are called in right sequence... - [_] BUG: changing window size in single image modes messes things up... - | until we cycle to ribbon mode and back... - [_] ASAP: load/view un-cached directories... - [_] ASAP: test on Android... - [_] single ribbon mode - | should this have up/down navigation? - | - | something like showGidsAsRibbon(gids) would be generic and logical... - [_] slideshow mode... - [_] import fav dirs (wo. index)... - [_] image sorting (reverse/date/name/...) - [_] add ability to save/load ranges of images and the structures around them - | e.g.load image 100 to current ribbon -> will load 100 images - | for current ribbon and all the in between images from other - | ribbons above and below... - [_] BUG: sometimes duplicate images get loaded... - | this happens when jumping back and forth on the mid ribbon until - | the last element shows up and then moving left until the frame - | around the image disappears... - | at this point, this will return 2: - | - | $('[order='+$('.current.image').attr('order')+']').length - | - [_] BUG: jumping screen images does not load the adjacent ribbons... - | positioning is OK but ribbons are not fully visible... - [_] 6% mark-based operations - [_] 33% cropping selection - [X] marked - [_] by tag/collection - [_] by group - [_] shift up/down - [_] tag - [_] group - | a group should behave as a single image but is - | viewable/expandable as a ribbon... - | - | should be two types of groups: - | - strict - always as a single image - | like a set of versions, processed and processing - | versions of the same image. - | (auto-group?) - | - loose - similar images, could be named collections - | viewed individually, but can be accessed either from - | a list or a member image (primary). - [_] collection - | make or add to existing collection - [_] 50% Undo/Redo - [X] basic one step (revert to last save) - [_] push/pop state stack - [_] 0% grouping / meta-image - [_] versions w. label image - | a set of images that is represented by one of the group - [_] collection - [_] 50% UI elements - [X] indicators - [_] image number - [X] stub info dialog - [_] detailed image info - [_] 0% gesture support - [_] up/down - shift - [_] left/right - navigate - [_] 0% CSS - [_] cleanup - [_] split themes and layout - [_] 0% manual ordering - [_] 0% tweak loader - [_] thresholds and frame size - [_] remove extra and repetitive actions - [_] caching config - [X] ASAP: support relative paths in cache... - [X] ASAP: account for image rotation with screen proportions while positioning - | getRelativeVisualPosition(...) gives an odd position when: - | - image is rotated - | - image is screen-proportioned - [X] NOTE: rotating might still produce alignment errors - | this is due: - | - most outerWidth/outerHeight being used do not account for margins... - [X] ASAP: rotate images in the viewer... - | This is a tad complicated by: - | - marks - | - image elem proportions that can change - [X] 100% themes - [X] light - [X] gray - [X] dark - [X] make focus up/down chose a closest independently of direction... - | navigation should be stable and moving up then down should yield - | exactly the same result... - [X] ASAP: rewrite binSearch!! - | linSearch obviously is not usable for large sets of data... - [X] split saving/loading into files and localStorage - | DATA - | - stored in localStorage - | - stored in file - | IMAGES - | - stored only in files (does not change) - | - [X] 100% modes - [X] ribbon - [X] single-image - [X] Save/load state - [X] 100% action visual indication - [X] first/last image - [X] shift up/down - [_] Low priority - [_] Help - [_] Keyboard config - [_] general config - - - -[_] 58% Gen 3 UI implementation - [X] 100% Infinite ribbon (lib) - [X] cyclic ribbon - [X] image block generation - [X] image block update - [X] ribbon head/tail management - | must be adaptive to current user scroll speed... - | - | at least a couple of screens at current zoom level... - [_] Partial save/load - | save only a block or changed data... - [X] Adaptive preview size (lib) - [X] Multiple ribbon (reuse) - [_] 0% User actions - | see [[controls.otl]] for basic actions... - | - | additional actions: - [X] 100% toggle mark image - [X] mark between - | mark all images between closest marks - [X] mark all/none - [X] mark invert - [X] show marked only in ribbon (crop selection) - [_] crop image - | shows a red/blue rectangle around image - | - | can be: - | turned +/- 90 deg - | turned arbitrarily - | scaled with constrained proportions - [_] show crop as red rectangle - [_] show only cropped area - [_] show crop as black veil - [_] add note to image - | a-la flickr notes... - [_] edit IPCT - [X] rotate image - [_] 66% UI modes - [_] 0% single ribbon - [_] show images shifted (all / above only / below only) in current ribbon - [_] show marked only - [X] 100% multiple ribbons - [X] show images above/below - [X] show marked only - [X] 100% single image - - -. -| vim:set spell : diff --git a/ui/TODO.otl b/ui/TODO.otl index dfe60349..c4796262 100755 --- a/ui/TODO.otl +++ b/ui/TODO.otl @@ -1,573 +1,182 @@ -Priority work - [_] 67% Preview II - [_] BUG: moving the last image from a ribbon up will make the screen jump... - [_] do something sensible when no images are loaded... - | in the simplest case, just write something in the middle of - | the background... +[_] 22% Gen 3 current todo + [_] 44% High priority + [_] BUG: aligning still sometimes gets off... + | ...after rotating a number of images | - | this might include a set of instructions... - [_] 46% native client - [_] 19% Generic - [X] make cache generator accept command-line args... - | very basic form... - [_] 0% import UI - | (a-la IrfanView fast browser) - [_] directory - [_] JSON - [_] CouchDB URL - | low priority at this point... - [_] 0% export UI - [_] JSON - [_] directory - [_] 33% export targets - [X] whole tree - [_] this ribbon and above - [_] this ribbon/selection - [_] default settings in platform-specific JSON file - | this file should be auto-loaded on first run -- when no - | other settings are present... - | - | should be something like: - | loadDefaultSettings() - | - | that will load: - | cef-defaults.json - for CEF - | phonegap-defaults.json - for, you guessed it... - | ... - [_] make platform detection an issue for the abstraction layer - | as it is now the case with dumbJSONFile(...) - [_] 50% Windows (CEF / CEFPython) - [_] package a portable exe - [_] 50% basic wrapper - [X] JSON reader/writer - [_] directory lister - [X] basic test - [_] 50% Android (PhoneGap) - [_] 50% package as W3C widget to be compatible with PhoneGap builder... - [X] make the basic test package... - | https://github.com/flynx/ImageGrid-Viewer - [_] automate the build and push process (sub-git?) - [_] 0% basic wrapper - [_] JSON reader/writer - [_] directory lister - [X] basic test - [X] disable transitions... - [_] 0% bugs - [_] taps register as two taps - | possibly a tap and a click... - [_] 66% Standalone utils - [X] generate cache - | resize images and put them into .ImageGrid.cache/px directory - | - | should rebuild JSON - [X] generate JSON - | build JSON data from a directory... - [_] generate dir tree - | use a json file to generate a fav dir tree - [_] make the system more tolerant to missing or wrong fields in json data... - [_] make loading of different resolution images smooth... - | can be done in several ways: - | - cache images before loading... - | - two layers... - | - always keep the lowest res image loaded... - [_] BUG: click does not update the image counter... - [_] 0% split functionality into modules... - [_] core - [_] extras - [X] BUG: images.json data behaves sometimes loses data... - | possibly because some fields (ctime, preview, etc) are missing... - [X] load sorted images from JSON data - | curently the sort is as in file... - [X] fix image ordering... - [X] add basic image info display... - [X] 100% dynamic loading of images - [X] 100% stream on navigate - | parameters that affect loading: - | - current view size -> image size must be closest - | above this - | - viewer width in images -> number of widths (2-3) - | distance is used to trigger - | loading or unloading of images - | depending on direction - | NOTE: this is done for each - | image size in use. - | - | NOTE: here the trigger must be proximity to the view as we - | can reach an image not just by navigating close but - | also by scrolling/dragging to it (without changing the - | current image)... - [X] store structure separately from ui (mirror context) - | an alternative would be to store the whole thing (sans images) - | in DOM, but that ma get very big. - | - | storing the structure will enable us to have partial structures - | thus updating the structure of a very big set without the user - | noticing. - [X] 100% sync context (handle edit events) - [X] identify action position - | use id... - [X] update ui structure (handle navigate/move events) - [X] sizes on zoom - | still needs work... - [X] make shift up/down direction-aware... - | i.e. if we are going through images in a direction select the - | next image in that direction when shifting... - [X] 100% load state - [X] load mechanics - [X] auto-load last state on startup - [X] manual (console) - | loadJSON(loadJSONFile(...)) - [X] 100% load folder - [X] drag'n'drop - [X] 100% save state - [X] minimal: Local Storage (manual) - | works across all targets (CEF, PhoneGap, browser) - [X] manual local JSON (file) - [X] 100% autosave - [X] on edit - [X] on navigate - | only save position to save time... - [X] on timer - [X] on unload - [X] manual incremental save - [X] manual named save - [X] versions/history - [X] 100% UI - [X] 100% disable opacity for current ribbon - [X] 1.0 opacity for current ribbon mode - | automatically turned on for magnifications over 2 images - | per screen.... - [X] current image indicator - | this can be: - | - rectangle (not border) - | - underline - | - corner icon - [X] 100% settings/help screen - [X] keyboard config/help - [X] auto-generated settings interface - [X] "hide other ribbons" mode - [X] fix single image mode - | need to center the image correctly... - [X] 100% add screen buttons for all actions... - [X] navigation - [X] actions - [X] zooming - [X] 100% zoom presets - [X] single - [X] three - [X] wide - | toggle... - [X] 100% control single-image mode animations - [X] scroll - [X] switch (no transition) - [X] 100% layout - [X] 100% tablet - [X] stretch to full screen - | NOTE: viewer 0% sizes may break things... - [X] make buttons semi-transparent and same color as bg in all modes - | just like single image mode... - [X] make bg color switching in all modes - | black, white, gray - [X] 100% PC - [X] stretch to full screen - [X] make view correctly resizable - | appears to work correctly but need to click an image onResize... - | - | XXX find a way around always clicking things... - [X] hide buttons for keyboard actions - [X] web - | is this is the same as the above two? (with auto-select) - [X] add screen-width images next/prev navigation... - [X] 100% debug mode - [X] toggle cross-hair - [X] 100% sorted images in ribbons - [X] 100% stage I: position the promoted/demoted image correctly - | and correct positioning on promote/demote + | happens when: + | - getScreenWidthInImages() < 2 + | - looking through images in one direction and back, some get misaligned + | ...this is stable behaviour by centerRibbon(...), + | calling it again will not fix this. + | moving next/prev will fix the issue until it comes back again + | - affected by LOAD_SCREENS and number of images in ribbon + | current figures: + | Ribbon: 18 + | Position going forward: 4 + | Position going back: 1 + | LOAD_SCREENS: 6 + | NOTE: changing LOAD_SCREENS moves the affected positions. + | NOTE: had a similar bug where some images still kept their + | prior sizing after recycling... + | ...check if centerRibbon(...) and correctImageProportionsForRotation(...) + | are called in right sequence... + [_] BUG: changing window size in single image modes messes things up... + | until we cycle to ribbon mode and back... + [_] ASAP: load/view un-cached directories... + [_] ASAP: test on Android... + [_] single ribbon mode + | should this have up/down navigation? + | + | something like showGidsAsRibbon(gids) would be generic and logical... + [_] slideshow mode... + [_] import fav dirs (wo. index)... + [_] image sorting (reverse/date/name/...) + [_] add ability to save/load ranges of images and the structures around them + | e.g.load image 100 to current ribbon -> will load 100 images + | for current ribbon and all the in between images from other + | ribbons above and below... + [_] BUG: sometimes duplicate images get loaded... + | this happens when jumping back and forth on the mid ribbon until + | the last element shows up and then moving left until the frame + | around the image disappears... + | at this point, this will return 2: + | + | $('[order='+$('.current.image').attr('order')+']').length + | + [_] BUG: jumping screen images does not load the adjacent ribbons... + | positioning is OK but ribbons are not fully visible... + [_] 6% mark-based operations + [_] 33% cropping selection + [X] marked + [_] by tag/collection + [_] by group + [_] shift up/down + [_] tag + [_] group + | a group should behave as a single image but is + | viewable/expandable as a ribbon... | - | input: - | [01][02][03][04][05][06][07][08][09][10][11] ... [19][20] - | - | single ribbon, nothing special here. - | - | - | general sort: - | [05] [10][11][12] [15] [19][20] - | [01] [04] [06][07][08] [13][14] [18] - | [02][03] [09] [16][17] - | - | each strip is positioned above or below the place it was - | shifted from. - | if there is not enough space use weights to balance the - | thing. - | - | - | selected [08]: - | [05] [10][11][12] [15] [19][20] - | [01] [04] [06][07][[08]] [13][14] [18] - | [02][03] [09] [16][17] - | - | above and below images are centered around the current - | image as axis, the rule is that the strips left are coming - | from the left of the axis and likewise for the right side. - | - [X] 100% stage II: scroll ribbons correctly - | this is simple: - | - center the right edge of image returned - | by getImageBefore in all ribbons other than current... - | - center current-image in current ribbon - | - vertically center the current ribbon (negative margin?) - [X] prototype and basic API - [X] 100% migrate main code to the new system - [X] basic navigation - [X] basic actions - [X] zooming - [X] position other ribbons... - | only prev/next for now... - [X] 100% correct zooming and modes - [X] zooming in ribbon view - [X] 100% zoom presets for ribbon view - | other possible presets: - | - five - | - all - | - group - | - day/month - | - shoot - | - tag - | ... - [X] three - [X] one (with zooming) - [X] single image mode with zooming - | ribbons are hidden - [X] 100% fix layout and animations - [X] zooming - [X] navigation - [X] 100% actions - [X] bug: shifting up to new ribbon pushes the current row down... - | before starting on a fix, need to cleanup the code from old hacks and workarounds... - [_] 39% Preview II (optional features) - [_] undo last action (action log) - [_] mark positions and jump between marks (a-la vim's "m"/"'" commands) - [_] 14% make things modular and reusable (independent widget) - [X] make the keyboard handler local to selector (mode-aware) - [_] prefix an ID to all selectors to make their actions "local" - [_] avoid use of id html attr - [_] avoid use of globals - | ImageGrid.XXX is a primery target... - [_] split as much of the work into events as possible - | one example is the stuff that's done on $('.current.image').click(), - | thinks like aligning ribbons, centering, etc. - [_] make sets of actions for combination via $.update(...) - | make things modular... - [_] organize things into "features" - | this will enable reuse as simple as combining only the desired - | features into a final entity... - [_] handle edit events to update the internal state state -- sync with DOM (???) - | this is needed only for keeping the state in order... + | should be two types of groups: + | - strict - always as a single image + | like a set of versions, processed and processing + | versions of the same image. + | (auto-group?) + | - loose - similar images, could be named collections + | viewed individually, but can be accessed either from + | a list or a member image (primary). + [_] collection + | make or add to existing collection + [_] 50% Undo/Redo + [X] basic one step (revert to last save) + [_] push/pop state stack + [_] 0% grouping / meta-image + [_] versions w. label image + | a set of images that is represented by one of the group + [_] collection + [_] 50% UI elements + [X] indicators + [_] image number + [X] stub info dialog + [_] detailed image info + [_] 0% gesture support + [_] up/down - shift + [_] left/right - navigate + [_] 0% CSS + [_] cleanup + [_] split themes and layout + [_] 0% manual ordering + [_] 0% tweak loader + [_] thresholds and frame size + [_] remove extra and repetitive actions + [_] caching config + [X] ASAP: support relative paths in cache... + [X] ASAP: account for image rotation with screen proportions while positioning + | getRelativeVisualPosition(...) gives an odd position when: + | - image is rotated + | - image is screen-proportioned + [X] NOTE: rotating might still produce alignment errors + | this is due: + | - most outerWidth/outerHeight being used do not account for margins... + [X] ASAP: rotate images in the viewer... + | This is a tad complicated by: + | - marks + | - image elem proportions that can change + [X] 100% themes + [X] light + [X] gray + [X] dark + [X] make focus up/down chose a closest independently of direction... + | navigation should be stable and moving up then down should yield + | exactly the same result... + [X] ASAP: rewrite binSearch!! + | linSearch obviously is not usable for large sets of data... + [X] split saving/loading into files and localStorage + | DATA + | - stored in localStorage + | - stored in file + | IMAGES + | - stored only in files (does not change) | - | NOTE: this is not that important as buildJSON(...) - | already does the job correctly... - [_] try a coffee-script version - [_] 0% PhoneGap + Android Issues: - [_] scrolling in overlays does not work - [_] half the keyboard is not working... - [_] screen buttons are very laggy - | while swipe works super fast... - [_] .dblclick(...) does not work... - [_] .dragable(...) does not work... - [_] slideshow... - | this is needed to disable navigation keys in setup-mode, for example... - [X] 100% serialization/deserialization - [X] JSON loader/unloader - [X] file reader/writer - [X] flip ribbons relative to current -- reverse order - [_] fade transition in single image mode... - [_] "show all promoted/demoted images" mode - | display images below or above but in a more transparent - | fashion... - | - | XXX should they be skipped on navigation? - [_] 80% drag/move action... - [X] basic infrastructure - [X] action: center current image - [X] while zoomed more than the screen - [X] while zoomed out (ribbon view) - [_] 0% cleanup... - [_] disable click events while dragging - [_] differentiate with gestures - | might be nice to add a Ps-like "space-dragging" - | feature to differentiate nav gestures and - | dragging... - | ...this may not work for tablets - | - | for tablets might be good to add a small timeout to - | both gestures and dragging, small enough for things - | to feel natural... - | - | another way is to start dragging anyway but if the - | eventual action resembles a gesture then exec that. - | ...this will need careful setup of timeouts and - | dynamic disabling/enabling of both drag and gestures - | e.g. of large zooms dragging takes priority. - [_] 50% return to current image / home (after drag) - [_] button - [X] keyboard - [X] double tap/click to zoom (a-la iPad) - | ribbon <-> single image mode - | - | XXX does not work in android... - [_] pinch to zoom - [X] BUG: rendering error when current ribbon images opacity is 1... - | This happens when: - | - opcity of .current.ribbon .image is 1 - | - there is atleast a ribbon above - | - the view is zoomed-out a bit ~70% - | - | the view is partially re-rendered when navigating images... - | - | since this is a browser render error, think of a way to work - | around this. - | - | WORKAROUND: set the opacity to 0.9999 instead of 1 forces the - | browser to re-render the whole set correctly. need to find a - | better way... - [X] 100% add sort/re-sort capability... - [X] abstract out image id - [X] replace id (use something else like filename) - [X] re-arrange ribbons (reverse) - [X] in-place sort images in ribbons - [_] 50% option to disable processor intensive features - [X] global transitions - [_] global opacity -- do a layout without opacity - [X] 100% refactoring (low priority) - [X] cleanup legacy workarounds - [X] ui.js, gallery-prototype.js either merge or revise split logic - [_] make scrolling of other ribbons proportional to the gap... - [_] 3% Preview III - [_] use Caps Lock for edit mode... - [_] infinite ribbons - dynamic structure construction and partial state - | one way to do this is by: - | - limiting the number of images per field - | - adding new images to new fields to the left and right of current - [_] 0% state - [_] 0% save state - [_] named manual - [_] CouchDB - [_] 0% export state - [_] JSON file - [_] directory tree - [_] XMP - [_] 0% load state - [_] named manual - [_] 25% directory browser - [_] browser mode/ui - [_] 50% import directory - [_] build/rebuild cache - [X] create JSON from cache - [_] collection management - [_] archive management - [_] 0% native client - [_] android - [_] restrict layout to horizontal - | leave doing a different vertical layout for later versions... - [_] windows - [_] MacOS (low priority) - [_] iOS (low priority) - [_] 0% unified build system - [_] 0% bugs: - [_] adding a new ribbon above the current is still jumpy... - [_] 0% Preview III (optional features) - [_] 0% Pre-Alpha - [_] 0% finalize UI logic - [_] unsorted images - [_] 0% Alpha - [_] 0% Beta - [_] 0% 1.0 - - -[_] 38% Main workflow - [_] 33% image viewing - [X] viewer - [_] select source - [_] slideshow - [X] 100% image sorting - [X] ribbon navigation - [X] shift image between ribbons - [X] 100% basic large scale operations - [X] sort all images - [X] reverse all images - [X] reverse ribbons - [_] 0% metadata - [_] tag filtering - [_] tag editing - [_] EXIF/IPTC - [_] 20% image/export export - [X] JSON - [_] XMP metadata - [_] fav dirs - [_] file list - [_] image set - + [X] 100% modes + [X] ribbon + [X] single-image + [X] Save/load state + [X] 100% action visual indication + [X] first/last image + [X] shift up/down + [_] Low priority + [_] Help + [_] Keyboard config + [_] general config + -Goals: - main ribbon always consistent - fast sorting via several simple passes - binary - | items are split into two ribbons. +[_] 58% Gen 3 UI implementation + [X] 100% Infinite ribbon (lib) + [X] cyclic ribbon + [X] image block generation + [X] image block update + [X] ribbon head/tail management + | must be adaptive to current user scroll speed... | - | this can be done either by mandatorily shifting either up or - | down or by restricting shifting to just one direction. - | - | this is a bit too restrictive. - | - | essentially this is a combination in the ternary approach - | below as we can still shift images between levels. - ternary - | current ribbon and items are either sifted up, shifted down - | relative to it or left on, unshifted. - | - | main ribbon consistency is not always obvious, especially on - | partially sorted sets. e.g. while sorting part of the set where - | should the unsorted part be? - | - | sorted section - | +-------------------+ - | - | oooooooooooooooooooooooooooooooo - | - oooooooooooooooooooooooooooo - | > oooooooooooooooooooooxxxxxxxxxxxxxxxxxxxxxxxxxxx... < - | + oooooooooooooooo - | oooo - | - | +----------------------------+ - | which level should this go to? - | - | in the illustration, the ribbon marked by ">" and "<" is where - | the sorting started. - | - | there is also a question of how do we define the border between - | sorted and unsorted zones and when? - | ...after the sort is done, and when is that? - | - | possible ways to go around this: - | before sorting select the working batch - | - adds an extra step - | - restricts later sorting - | restrict promotion over the main ribbon - | + sorting can be refined later in the same mode - | - prevents the user to select the better images on first pass - | split the sorted and unsorted batches and never mix them - | - restricts later sorting - | main ribbon always shows all the better images (from better levels) - | o needs a way to move whole topologies up/down relative - | to the main ribbon... - | one way to do this is select and shift multiple images - | will shift the whole pyramid (with all the "worse" images in between) - | - introduces modes: sorting / viewing - | - adds a separate stage -- move the topology to a correct - | main ribbon position - | - | Q: is this system applicable to sorting search results? - | A: likely yes, but the farther one gets from the main ribbon - | the more the difference can get between adjacent images. - images are always sortable - all levels always browsable - make all the steps except the actual sorting implicit - | i.e. no jumping through hoops for the human... - use the same mechanism as used for sorting, for image selection - | this can be used for tagging, exhibitions, ...etc. - context - | a context consists of two things: - | - image selection (might be a product of another context, search or selection) - | - a way the levels are interpreted within this context - | - | default contexts: - | - full view rating context - | this incorporates ALL the archive and the levels are interpreted as ratings. - | - selection rating context - | same as full view but only part of the archive is rated - | XXX this will need to be merged correctly back into the archive... - | - selection context - | this simply takes one set of images as input and shows a subset as output. - | - | contexts are persistent, much like a catalogue. - | - | a context can be cloned and re-used. - | - | contexts can be used to mark: - | - shoots - | - subjects - | - exhibitions/shows - | - portfolios - | - ... - - -[[controls.otl]] - - - -[_] 38% features - [_] 55% views - [_] 60% ribbon-based view - [_] show all (very zoomed out view) - | might be good to not show any images here at all, just replace them with their average color - [X] show map - [X] fit to ribbon - [X] fit to image (square) - [_] ribbon with promoted/demoted images - | show semi-transparent images that were demoted/promoted from current ribbon - [_] 50% single image view - [_] image fit to screen - [X] image fit to square - | show parts of upper and lower ribbons - [X] image zooming - | fast zooming to stages: - | fit - | 100% - | 200% - | ... - [_] basic editing and manipulation - | image unchanged, data saved to json... - [_] crop - [_] rotate - - - -[_] 38% General ToDo - [_] 80% image sorting - [_] will affect: - [X] promote - [X] demote - [X] shift up - [X] shift down - [_] ribbon merging - [_] add promote/demote events (to attach structure editors)... - | enable extension and use as a generic widget... - [X] add real images... - [_] make all the code relative to the current selection (multiple instances on a page support) - [X] add ribbon relative scrolling... - | each ribbon is positioned relative to the current selected image - | below-left: closest image to the left of the current - | bolow-right: same as above but right... + | at least a couple of screens at current zoom level... + [_] Partial save/load + | save only a block or changed data... + [X] Adaptive preview size (lib) + [X] Multiple ribbon (reuse) + [_] 0% User actions + | see [[controls.otl]] for basic actions... | - | this will demote/promote the image directly up or down... - [_] make this into a jquery plugin... - [_] add dynamic loading and unloading for very large sets... - [X] gesture support... - [_] add basic actions: - [_] rotate left - [_] rotate right - [_] crop - ... - [_] add info: - [_] number of images in ribbon - [_] position in ribbon + | additional actions: + [X] 100% toggle mark image + [X] mark between + | mark all images between closest marks + [X] mark all/none + [X] mark invert + [X] show marked only in ribbon (crop selection) + [_] crop image + | shows a red/blue rectangle around image + | + | can be: + | turned +/- 90 deg + | turned arbitrarily + | scaled with constrained proportions + [_] show crop as red rectangle + [_] show only cropped area + [_] show crop as black veil + [_] add note to image + | a-la flickr notes... + [_] edit IPCT + [X] rotate image + [_] 66% UI modes + [_] 0% single ribbon + [_] show images shifted (all / above only / below only) in current ribbon + [_] show marked only + [X] 100% multiple ribbons + [X] show images above/below + [X] show marked only + [X] 100% single image - -[_] % ISSUES and BUGS: - [_] jumping on focus up/down... - [_] demoting a first element (a ribbon is created) positions the field incorrectly (see demoteImage() for details)... - . | vim:set spell : diff --git a/ui/data.js b/ui/data.js index 2c05b923..c88225d7 100755 --- a/ui/data.js +++ b/ui/data.js @@ -821,14 +821,12 @@ if(window.CEF_dumpJSON != null){ // // This will also merge all diff files. function loadFileImages(path, no_load_diffs, callback){ + no_load_diffs = window.listDir == null ? true : no_load_diffs - if(window.listDir == null){ - no_load_diffs = true - } - - // find the latest images file... + // default locations... if(path == null){ var base = normalizePath(CACHE_DIR) + // find the latest images file... var path = $.map(listDir(base), function(e){ return /.*-images.json$/.test(e) ? e : null }).sort().reverse()[0] @@ -838,11 +836,11 @@ function loadFileImages(path, no_load_diffs, callback){ path = base +'/'+ path + // explicit path... + // XXX need to account for paths without a CACHE_DIR } else { path = normalizePath(path) - // XXX need to account for paths without a CACHE_DIR var base = path.split(CACHE_DIR)[0] - // XXX what are we going to do if base == path, i.e. no cache dir??? base += '/'+ CACHE_DIR } @@ -872,6 +870,7 @@ function loadFileImages(path, no_load_diffs, callback){ }) } + // load the main image file and merge the diff with it... return $.when(diff, $.getJSON(path)) .done(function(_, json){ json = json[0] @@ -888,62 +887,6 @@ function loadFileImages(path, no_load_diffs, callback){ } -// XXX make this load a default data filename... -// XXX look into the CACHE_DIR if not explicitly given... -function loadFileState(data_path, callback){ - var base = data_path.split(CACHE_DIR)[0] - base = base == data_path ? '.' : base - - var res = $.Deferred() - - $.getJSON(data_path) - .done(function(json){ - BASE_URL = base - - // legacy format... - if(json.version == null){ - json = convertDataGen1(json) - DATA = json.data - IMAGES = json.images - // XXX load marked data... - MARKED = [] - loadData() - - // version 2.0 - } else if(json.version == '2.0') { - DATA = json - if(DATA.image_file != null) { - loadFileImages(normalizePath(DATA.image_file, base)) - .done(function(){ - loadData() - - callback != null && callback() - res.resolve() - }) - } else { - loadFileImages(null) - .done(function(){ - loadData() - - callback != null && callback() - res.resolve() - }) - } - - // unknown format... - } else { - console.error('unknown format.') - return - } - }) - .fail(function(){ - console.error('ERROR LOADING:', data_path) - }) - - return res -} - - // Save current images list... // // NOTE: this will save the merged images and remove the diff files... @@ -954,7 +897,6 @@ function saveFileImages(name){ var remove_diffs = (name == null) name = name == null ? normalizePath(CACHE_DIR +'/'+ Date.timeStamp()) : name - // CEF if(window.dumpJSON == null){ console.error('Can\'t save to file.') return @@ -976,6 +918,49 @@ function saveFileImages(name){ } +function loadFileState(data_path, callback){ + var base = data_path.split(CACHE_DIR)[0] + base = base == data_path ? '.' : base + var res = $.Deferred() + + $.getJSON(data_path) + .done(function(json){ + BASE_URL = base + + // legacy format... + if(json.version == null){ + json = convertDataGen1(json) + DATA = json.data + IMAGES = json.images + MARKED = [] + loadData() + + // version 2.0 + } else if(json.version == '2.0') { + DATA = json + loadFileImages(DATA.image_file == null ? + normalizePath(DATA.image_file, base) + : null) + .done(function(){ + loadData() + callback != null && callback() + res.resolve() + }) + + // unknown format... + } else { + console.error('unknown format.') + return + } + }) + .fail(function(){ + console.error('ERROR LOADING:', data_path) + }) + + return res +} + + function saveFileState(name, no_normalize_path){ name = name == null ? Date.timeStamp() : name @@ -1037,12 +1022,10 @@ function loadDir(path){ // // NOTE: this will open the default editor/viewer. function openImage(){ - // CEF if(window.runSystem == null){ console.error('Can\'t run external programs.') return } - // XXX if path is not present try and open the biggest preview... return runSystem(normalizePath(IMAGES[getImageGID()].path, BASE_URL)) } diff --git a/ui/ext-lib/jquery-1.7.2.min.js b/ui/ext-lib/jquery-1.7.2.min.js new file mode 100755 index 00000000..16ad06c5 --- /dev/null +++ b/ui/ext-lib/jquery-1.7.2.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.2 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="
"+""+"
",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="
t
",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( +a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f +.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/ui/ext-lib/jquery.js b/ui/ext-lib/jquery.js new file mode 100755 index 00000000..16ad06c5 --- /dev/null +++ b/ui/ext-lib/jquery.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.2 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="
"+""+"
",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="
t
",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( +a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f +.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/ui/ext-lib/jstorage.js b/ui/ext-lib/jstorage.js new file mode 100755 index 00000000..ad9ec538 --- /dev/null +++ b/ui/ext-lib/jstorage.js @@ -0,0 +1,770 @@ +/* + * ----------------------------- JSTORAGE ------------------------------------- + * Simple local storage wrapper to save data on the browser side, supporting + * all major browsers - IE6+, Firefox2+, Safari4+, Chrome4+ and Opera 10.5+ + * + * Copyright (c) 2010 - 2012 Andris Reinman, andris.reinman@gmail.com + * Project homepage: www.jstorage.info + * + * Licensed under MIT-style license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + + (function(){ + var + /* jStorage version */ + JSTORAGE_VERSION = "0.2.3", + + /* detect a dollar object or create one if not found */ + $ = window.jQuery || window.$ || (window.$ = {}), + + /* check for a JSON handling support */ + JSON = { + parse: + window.JSON && (window.JSON.parse || window.JSON.decode) || + String.prototype.evalJSON && function(str){return String(str).evalJSON();} || + $.parseJSON || + $.evalJSON, + stringify: + window.JSON && (window.JSON.stringify || window.JSON.encode) || + Object.toJSON || + $.toJSON + }; + + // Break if no JSON support was found + if(!JSON.parse || !JSON.stringify){ + throw new Error("No JSON support found, include //cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js to page"); + } + + var + /* This is the object, that holds the cached values */ + _storage = {}, + + /* Actual browser storage (localStorage or globalStorage['domain']) */ + _storage_service = {jStorage:"{}"}, + + /* DOM element for older IE versions, holds userData behavior */ + _storage_elm = null, + + /* How much space does the storage take */ + _storage_size = 0, + + /* which backend is currently used */ + _backend = false, + + /* onchange observers */ + _observers = {}, + + /* timeout to wait after onchange event */ + _observerTimeout = false, + + /* last update time */ + _observerUpdate = 0, + + /* Next check for TTL */ + _ttl_timeout, + + /* crc32 table */ + _crc32Table = "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 "+ + "0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 "+ + "6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 "+ + "FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 "+ + "A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 "+ + "32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 "+ + "56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 "+ + "C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 "+ + "E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 "+ + "6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 "+ + "12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE "+ + "A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 "+ + "DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 "+ + "5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 "+ + "2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF "+ + "04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 "+ + "7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 "+ + "FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 "+ + "A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C "+ + "36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 "+ + "5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 "+ + "C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 "+ + "EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D "+ + "7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 "+ + "18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 "+ + "A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A "+ + "D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A "+ + "53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 "+ + "2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D", + + /** + * XML encoding and decoding as XML nodes can't be JSON'ized + * XML nodes are encoded and decoded if the node is the value to be saved + * but not if it's as a property of another object + * Eg. - + * $.jStorage.set("key", xmlNode); // IS OK + * $.jStorage.set("key", {xml: xmlNode}); // NOT OK + */ + _XMLService = { + + /** + * Validates a XML node to be XML + * based on jQuery.isXML function + */ + isXML: function(elm){ + var documentElement = (elm ? elm.ownerDocument || elm : 0).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; + }, + + /** + * Encodes a XML node to string + * based on http://www.mercurytide.co.uk/news/article/issues-when-working-ajax/ + */ + encode: function(xmlNode) { + if(!this.isXML(xmlNode)){ + return false; + } + try{ // Mozilla, Webkit, Opera + return new XMLSerializer().serializeToString(xmlNode); + }catch(E1) { + try { // IE + return xmlNode.xml; + }catch(E2){} + } + return false; + }, + + /** + * Decodes a XML node from string + * loosely based on http://outwestmedia.com/jquery-plugins/xmldom/ + */ + decode: function(xmlString){ + var dom_parser = ("DOMParser" in window && (new DOMParser()).parseFromString) || + (window.ActiveXObject && function(_xmlString) { + var xml_doc = new ActiveXObject('Microsoft.XMLDOM'); + xml_doc.async = 'false'; + xml_doc.loadXML(_xmlString); + return xml_doc; + }), + resultXML; + if(!dom_parser){ + return false; + } + resultXML = dom_parser.call("DOMParser" in window && (new DOMParser()) || window, xmlString, 'text/xml'); + return this.isXML(resultXML)?resultXML:false; + } + }; + + ////////////////////////// PRIVATE METHODS //////////////////////// + + /** + * Initialization function. Detects if the browser supports DOM Storage + * or userData behavior and behaves accordingly. + */ + function _init(){ + /* Check if browser supports localStorage */ + var localStorageReallyWorks = false; + if("localStorage" in window){ + try { + window.localStorage.setItem('_tmptest', 'tmpval'); + localStorageReallyWorks = true; + window.localStorage.removeItem('_tmptest'); + } catch(BogusQuotaExceededErrorOnIos5) { + // Thanks be to iOS5 Private Browsing mode which throws + // QUOTA_EXCEEDED_ERRROR DOM Exception 22. + } + } + if(localStorageReallyWorks){ + try { + if(window.localStorage) { + _storage_service = window.localStorage; + _backend = "localStorage"; + _observerUpdate = _storage_service.jStorage_update; + } + } catch(E3) {/* Firefox fails when touching localStorage and cookies are disabled */} + } + /* Check if browser supports globalStorage */ + else if("globalStorage" in window){ + try { + if(window.globalStorage) { + _storage_service = window.globalStorage[window.location.hostname]; + _backend = "globalStorage"; + _observerUpdate = _storage_service.jStorage_update; + } + } catch(E4) {/* Firefox fails when touching localStorage and cookies are disabled */} + } + /* Check if browser supports userData behavior */ + else { + _storage_elm = document.createElement('link'); + if(_storage_elm.addBehavior){ + + /* Use a DOM element to act as userData storage */ + _storage_elm.style.behavior = 'url(#default#userData)'; + + /* userData element needs to be inserted into the DOM! */ + document.getElementsByTagName('head')[0].appendChild(_storage_elm); + + _storage_elm.load("jStorage"); + + var data = "{}"; + try{ + data = _storage_elm.getAttribute("jStorage"); + }catch(E5){} + + try{ + _observerUpdate = _storage_elm.getAttribute("jStorage_update"); + }catch(E6){} + + _storage_service.jStorage = data; + _backend = "userDataBehavior"; + }else{ + _storage_elm = null; + return; + } + } + + _load_storage(); + + // remove dead keys + _handleTTL(); + + // start listening for changes + _setupObserver(); + } + + function _reloadData(){ + var data = "{}"; + + if(_backend == "userDataBehavior"){ + _storage_elm.load("jStorage"); + + try{ + data = _storage_elm.getAttribute("jStorage"); + }catch(E5){} + + try{ + _observerUpdate = _storage_elm.getAttribute("jStorage_update"); + }catch(E6){} + + _storage_service.jStorage = data; + } + + _load_storage(); + + // remove dead keys + _handleTTL(); + } + + /** + * Sets up a storage change observer + */ + function _setupObserver(){ + if(_backend == "localStorage" || _backend == "globalStorage"){ + if("addEventListener" in window){ + window.addEventListener("storage", _storageObserver, false); + }else{ + document.attachEvent("onstorage", _storageObserver); + } + }else if(_backend == "userDataBehavior"){ + setInterval(_storageObserver, 1000); + } + } + + /** + * Fired on any kind of data change, needs to check if anything has + * really been changed + */ + function _storageObserver(){ + var updateTime; + // cumulate change notifications with timeout + clearTimeout(_observerTimeout); + _observerTimeout = setTimeout(function(){ + + if(_backend == "localStorage" || _backend == "globalStorage"){ + updateTime = _storage_service.jStorage_update; + }else if(_backend == "userDataBehavior"){ + _storage_elm.load("jStorage"); + try{ + updateTime = _storage_elm.getAttribute("jStorage_update"); + }catch(E5){} + } + + if(updateTime && updateTime != _observerUpdate){ + _observerUpdate = updateTime; + _checkUpdatedKeys(); + } + + }, 100); + } + + /** + * Reloads the data and checks if any keys are changed + */ + function _checkUpdatedKeys(){ + var oldCrc32List = JSON.parse(JSON.stringify(_storage.__jstorage_meta.CRC32)), + newCrc32List; + + _reloadData(); + newCrc32List = JSON.parse(JSON.stringify(_storage.__jstorage_meta.CRC32)); + + var key, + updated = [], + removed = []; + + for(key in oldCrc32List){ + if(oldCrc32List.hasOwnProperty(key)){ + if(!newCrc32List[key]){ + removed.push(key); + continue; + } + if(oldCrc32List[key] != newCrc32List[key]){ + updated.push(key); + } + } + } + + for(key in newCrc32List){ + if(newCrc32List.hasOwnProperty(key)){ + if(!oldCrc32List[key]){ + updated.push(key); + } + } + } + + _fireObservers(updated, "updated"); + _fireObservers(removed, "deleted"); + } + + /** + * Fires observers for updated keys + * + * @param {Array|String} keys Array of key names or a key + * @param {String} action What happened with the value (updated, deleted, flushed) + */ + function _fireObservers(keys, action){ + keys = [].concat(keys || []); + if(action == "flushed"){ + keys = []; + for(var key in _observers){ + if(_observers.hasOwnProperty(key)){ + keys.push(key); + } + } + action = "deleted"; + } + for(var i=0, len = keys.length; i>> 8)^x; + } + return crc^(-1); + } + + ////////////////////////// PUBLIC INTERFACE ///////////////////////// + + $.jStorage = { + /* Version number */ + version: JSTORAGE_VERSION, + + /** + * Sets a key's value. + * + * @param {String} key Key to set. If this value is not set or not + * a string an exception is raised. + * @param {Mixed} value Value to set. This can be any value that is JSON + * compatible (Numbers, Strings, Objects etc.). + * @param {Object} [options] - possible options to use + * @param {Number} [options.TTL] - optional TTL value + * @return {Mixed} the used value + */ + set: function(key, value, options){ + _checkKey(key); + + options = options || {}; + + // undefined values are deleted automatically + if(typeof value == "undefined"){ + this.deleteKey(key); + return value; + } + + if(_XMLService.isXML(value)){ + value = {_is_xml:true,xml:_XMLService.encode(value)}; + }else if(typeof value == "function"){ + return undefined; // functions can't be saved! + }else if(value && typeof value == "object"){ + // clone the object before saving to _storage tree + value = JSON.parse(JSON.stringify(value)); + } + _storage[key] = value; + + _storage.__jstorage_meta.CRC32[key] = _crc32(JSON.stringify(value)); + + this.setTTL(key, options.TTL || 0); // also handles saving and _publishChange + + _fireObservers(key, "updated"); + return value; + }, + + /** + * Looks up a key in cache + * + * @param {String} key - Key to look up. + * @param {mixed} def - Default value to return, if key didn't exist. + * @return {Mixed} the key value, default value or null + */ + get: function(key, def){ + _checkKey(key); + if(key in _storage){ + if(_storage[key] && typeof _storage[key] == "object" && + _storage[key]._is_xml && + _storage[key]._is_xml){ + return _XMLService.decode(_storage[key].xml); + }else{ + return _storage[key]; + } + } + return typeof(def) == 'undefined' ? null : def; + }, + + /** + * Deletes a key from cache. + * + * @param {String} key - Key to delete. + * @return {Boolean} true if key existed or false if it didn't + */ + deleteKey: function(key){ + _checkKey(key); + if(key in _storage){ + delete _storage[key]; + // remove from TTL list + if(typeof _storage.__jstorage_meta.TTL == "object" && + key in _storage.__jstorage_meta.TTL){ + delete _storage.__jstorage_meta.TTL[key]; + } + + delete _storage.__jstorage_meta.CRC32[key]; + + _save(); + _publishChange(); + _fireObservers(key, "deleted"); + return true; + } + return false; + }, + + /** + * Sets a TTL for a key, or remove it if ttl value is 0 or below + * + * @param {String} key - key to set the TTL for + * @param {Number} ttl - TTL timeout in milliseconds + * @return {Boolean} true if key existed or false if it didn't + */ + setTTL: function(key, ttl){ + var curtime = +new Date(); + _checkKey(key); + ttl = Number(ttl) || 0; + if(key in _storage){ + + if(!_storage.__jstorage_meta.TTL){ + _storage.__jstorage_meta.TTL = {}; + } + + // Set TTL value for the key + if(ttl>0){ + _storage.__jstorage_meta.TTL[key] = curtime + ttl; + }else{ + delete _storage.__jstorage_meta.TTL[key]; + } + + _save(); + + _handleTTL(); + + _publishChange(); + return true; + } + return false; + }, + + /** + * Gets remaining TTL (in milliseconds) for a key or 0 when no TTL has been set + * + * @param {String} key Key to check + * @return {Number} Remaining TTL in milliseconds + */ + getTTL: function(key){ + var curtime = +new Date(), ttl; + _checkKey(key); + if(key in _storage && _storage.__jstorage_meta.TTL && _storage.__jstorage_meta.TTL[key]){ + ttl = _storage.__jstorage_meta.TTL[key] - curtime; + return ttl || 0; + } + return 0; + }, + + /** + * Deletes everything in cache. + * + * @return {Boolean} Always true + */ + flush: function(){ + _storage = {__jstorage_meta:{CRC32:{}}}; + _save(); + _publishChange(); + _fireObservers(null, "flushed"); + return true; + }, + + /** + * Returns a read-only copy of _storage + * + * @return {Object} Read-only copy of _storage + */ + storageObj: function(){ + function F() {} + F.prototype = _storage; + return new F(); + }, + + /** + * Returns an index of all used keys as an array + * ['key1', 'key2',..'keyN'] + * + * @return {Array} Used keys + */ + index: function(){ + var index = [], i; + for(i in _storage){ + if(_storage.hasOwnProperty(i) && i != "__jstorage_meta"){ + index.push(i); + } + } + return index; + }, + + /** + * How much space in bytes does the storage take? + * + * @return {Number} Storage size in chars (not the same as in bytes, + * since some chars may take several bytes) + */ + storageSize: function(){ + return _storage_size; + }, + + /** + * Which backend is currently in use? + * + * @return {String} Backend name + */ + currentBackend: function(){ + return _backend; + }, + + /** + * Test if storage is available + * + * @return {Boolean} True if storage can be used + */ + storageAvailable: function(){ + return !!_backend; + }, + + /** + * Register change listeners + * + * @param {String} key Key name + * @param {Function} callback Function to run when the key changes + */ + listenKeyChange: function(key, callback){ + _checkKey(key); + if(!_observers[key]){ + _observers[key] = []; + } + _observers[key].push(callback); + }, + + /** + * Remove change listeners + * + * @param {String} key Key name to unregister listeners against + * @param {Function} [callback] If set, unregister the callback, if not - unregister all + */ + stopListening: function(key, callback){ + _checkKey(key); + + if(!_observers[key]){ + return; + } + + if(!callback){ + delete _observers[key]; + return; + } + + for(var i = _observers[key].length - 1; i>=0; i--){ + if(_observers[key][i] == callback){ + _observers[key].splice(i,1); + } + } + }, + + /** + * Reloads the data from browser storage + */ + reInit: function(){ + _reloadData(); + } + }; + + // Initialize jStorage + _init(); + +})(); \ No newline at end of file diff --git a/ui/index.html b/ui/index.html index 2bdbac86..9d7e1b94 100755 --- a/ui/index.html +++ b/ui/index.html @@ -405,7 +405,7 @@ body { - + @@ -415,7 +415,7 @@ body { - + diff --git a/ui/keybindings.js b/ui/keybindings.js index a431a0f3..52bbd488 100755 --- a/ui/keybindings.js +++ b/ui/keybindings.js @@ -1,145 +1,333 @@ +/********************************************************************** +* +* +* +**********************************************************************/ + +//var DEBUG = DEBUG != null ? DEBUG : true + +var STEPS_TO_CHANGE_DIRECTION = 2 +var _STEPS_LEFT_TO_CHANGE_DIRECTION = STEPS_TO_CHANGE_DIRECTION +// XXX code related to this needs testing... +var DIRECTION = 'next' + + + /*********************************************************************/ -// NOTE: use String.fromCharCode(code)... -// list of keys to be ignored by handler but still handled by the browser... -var keybindings = { - // global bindings... - '*': { +var KEYBOARD_CONFIG = { + // single image mode only... + '.single-image-mode': { + title: 'Single image mode', + + // XXX this should only work on single image mode... + F: doc('Toggle view proportions', + function(){ + toggleImageProportions() + centerRibbons() + }), + Esc: doc('Exit single image mode', + function(){ toggleSingleImageMode('off') }), + Q: 'Esc', + }, + + // single image mode only... + '.marked-only-view:not(.single-image-mode)': { + title: 'Marked only view', + + Esc: doc('Exit marked only view', + function(){ toggleMarkedOnlyView('off') }) + }, + + + // help mode... + '.help-mode': { + title: 'Help', + doc: 'NOTE: In this mode all other key bindings are disabled, except '+ + 'the ones explicitly defined here.', + ignore: '*', + + Esc: doc('Close help', + function(){ toggleKeyboardHelp('off') }), + H: 'Esc', + Q: 'Esc', + // '?' + '/': { + shift: 'Esc', + }, + }, + + + // general setup... + '.viewer:not(.overlay)': { title: 'Global', - doc: '', - ignore: [ - 116, // F5 - 123, // F12 - ], - - // togglable modes and options... - 191: { - 'default': ImageGrid.showKeyboardBindings, // ? - 'ctrl': ImageGrid.showSetup, // ctrl+? - }, - 80: ImageGrid.showSetup, // p - 70: ImageGrid.toggleSingleImageMode, // f - 13: 70, // Enter - 83: ImageGrid.toggleSingleRibbonMode, // s - 84: ImageGrid.toggleSingleImageModeTransitions, // t - 65: ImageGrid.toggleTransitions, // a - 9: ImageGrid.toggleControls, // tab - 66: ImageGrid.toggleBackgroundModes, // b - 73: ImageGrid.toggleCurrentRibbonOpacity, // i - 78: ImageGrid.toggleInfo, // n - 77: toggleMarkers, // m - - 87: ImageGrid.saveState, // w - - 27: ImageGrid.closeOverlay, // Esc - - // ignore the modifiers (shift, alt, ctrl, caps)... - 16: function(){}, - 17: 16, - 18: 16, - 20: 16, // Caps Lock - - // refresh... - // XXX make this into a real action... - 116: function(){ return DEBUG?true:false }, // F5 - 112: 116, // F12 - }, + // Navigation... + // XXX need to cancel the animation of the prev action... + Left: { + default: doc('Previous image', + function(){ + event.preventDefault() + // update direction... + if(DIRECTION != 'prev'){ + _STEPS_LEFT_TO_CHANGE_DIRECTION-- + if(_STEPS_LEFT_TO_CHANGE_DIRECTION == 0){ + DIRECTION = 'prev' + _STEPS_LEFT_TO_CHANGE_DIRECTION = 2 + } + } else { + _STEPS_LEFT_TO_CHANGE_DIRECTION = 2 + } + prevImage() + centerRibbons() + }), + ctrl: doc('Previous screen', + function(){ + event.preventDefault() + prevScreenImages() + centerRibbons() + }), + }, + Right: { + default: doc('Next image', + function(){ + event.preventDefault() + // update direction... + if(DIRECTION != 'next'){ + _STEPS_LEFT_TO_CHANGE_DIRECTION-- + if(_STEPS_LEFT_TO_CHANGE_DIRECTION == 0){ + DIRECTION = 'next' + _STEPS_LEFT_TO_CHANGE_DIRECTION = 2 + } + } else { + _STEPS_LEFT_TO_CHANGE_DIRECTION = 2 + } + nextImage() + centerRibbons() + }), + ctrl: doc('Previous screen', + function(){ + event.preventDefault() + nextScreenImages() + centerRibbons() + }), + }, + Space: { + default: 'Right', + shift: 'Left', + // screen-oriented movement... + ctrl: 'Right', + 'ctrl+shift': 'Left', + }, + Backspace: { + default: 'Left', + shift: 'Right', + }, + Home: doc('First image', + function(){ + event.preventDefault() + firstImage() + centerRibbons() + }), + End: doc('Last image', + function(){ + event.preventDefault() + lastImage() + centerRibbons() + }), - // overlay... - '.overlay-mode': { - title: 'Overlay mode', - doc: 'Overlay mode key bindings.', + // combined navigation and editor actions... + Up: { + default: doc('Go to ribbon above', + function(){ + event.preventDefault() + prevRibbon() + centerRibbons() + }), + shift: doc('Shift image up', + function(){ + event.preventDefault() + shiftImageUp(null, DIRECTION) + centerRibbons() + }), + 'ctrl+shift': doc('Shift image up to empty ribbon', + function(){ + event.preventDefault() + shiftImageUpNewRibbon(null, DIRECTION) + centerRibbons() + }), + }, + Down: { + default: doc('Go to ribbon below', + function(){ + event.preventDefault() + nextRibbon() + centerRibbons() + }), + shift: doc('Shift image down', + function(){ + event.preventDefault() + shiftImageDown(null, DIRECTION) + centerRibbons() + }), + 'ctrl+shift': doc('Shift image down to empty ribbon', + function(){ + event.preventDefault() + shiftImageDownNewRibbon(null, DIRECTION) + centerRibbons() + }), + }, - ignore: [ - 33, // PgUp - 34, // PgDown - 37, // Left - 39, // Right - 36, // Home - 32, // Space - 35, // End - 38, // Up - 40, // Down - ], - }, + L: doc('Rotate image left', function(){ rotateLeft() }), + R: doc('Rotate image right', function(){ rotateRight() }), - // everything except overlays... - '.viewer *:not(.overlay-mode *)': { - title: 'Ribbon and Viewer', - doc: '', - // zooming... - 187: ImageGrid.scaleContainerUp, // + - 189: ImageGrid.scaleContainerDown, // - - // zoom presets... - 48: { - 'default': ImageGrid.centerCurrentImage, // 0 - // XXX make this into a real action... - 'ctrl': ImageGrid.fitImage, // ctrl+0 - }, - 49: ImageGrid.fitImage, // 1 - 50: ImageGrid.fitTwoImages, // 2 - 51: ImageGrid.fitThreeImages, // 3 - 52: ImageGrid.fitFourImages, // 4 - 53: ImageGrid.fitFiveImages, // 5 - 54: ImageGrid.fitSixImages, // 6 - 55: ImageGrid.fitSevenImages, // 7 - 56: ImageGrid.fitEightImages, // 8 - 57: ImageGrid.fitNineImages, // 9 + '#1': doc('Fit one image', function(){ fitNImages(1) }), + '#2': doc('Fit two images', function(){ fitNImages(2) }), + '#3': doc('Fit three images', function(){ fitNImages(3) }), + '#4': doc('Fit four images', function(){ fitNImages(4) }), + '#5': doc('Fit five images', function(){ fitNImages(5) }), + '#6': doc('Fit six images', function(){ fitNImages(6) }), + '#7': doc('Fit seven images', function(){ fitNImages(7) }), + '#8': doc('Fit eight images', function(){ fitNImages(8) }), + '#9': doc('Fit nine images', function(){ fitNImages(9) }), + + '-': doc('Zoom in', function(){ zoomOut() }), + '=': doc('Zoom out', function(){ zoomIn() }), - // navigation... - 36: ImageGrid.firstImage, // Home - 219: 36, // [ - 35: ImageGrid.lastImage, // End - 221: 35, // ] - 37: { - 'default': ImageGrid.prevImage, // Right - 'ctrl': ImageGrid.prevScreenImages, // ctrl-Right - 'alt': ImageGrid.prevScreenImages, // alt-Right - }, - 8: 37, // BkSp - 188: 37, // < - 39: { - 'default': ImageGrid.nextImage, // Left - 'ctrl': ImageGrid.nextScreenImages, // ctrl-Left - 'alt': ImageGrid.nextScreenImages, // alt-Left - }, - 32: 39, // Space - 190: 39, // > - 186: ImageGrid.prevScreenImages, // ; - 222: ImageGrid.nextScreenImages, // ' - // move view... - // XXX should these be s-up, s-down, ... ?? - 75: ImageGrid.moveViewUp, // k - 74: ImageGrid.moveViewDown, // j - 72: ImageGrid.moveViewLeft, // h - 76: ImageGrid.moveViewRight, // l - // XXX use this to open... - //79: ImageGrid.centerCurrentImage, // o + Enter: doc('Toggle single image view', + function(){ toggleSingleImageMode() }), + + B: doc('Toggle theme', function(){ toggleTheme() }), + + S: { + ctrl: doc('Save current state', + function(){ + event.preventDefault() + //saveLocalStorage() + saveLocalStorageData() + saveLocalStorageMarks() + + saveLocalStorageSettings() + + saveFileState() + }) + }, + Z: { + ctrl: doc('Restore to last saved state', + function(){ + loadLocalStorage() + loadLocalStorageMarks() + }) + }, - // combined navigation with actions.. - 38: { - 'default': ImageGrid.focusAboveRibbon, // Up - 'shift': ImageGrid.shiftImageUp, // shift-Up - 'ctrl+shift': ImageGrid.shiftImageUpNewRibbon // ctrl-shift-Up - }, - 40: { - 'default': ImageGrid.focusBelowRibbon, // Down - 'shift': ImageGrid.shiftImageDown, // shift-Down - 'ctrl+shift': ImageGrid.shiftImageDownNewRibbon // ctrl-shift-Down - }, + // marking... + // XXX not final, think of a better way to do this... + // XXX need mark navigation... + // XXX need marked image shift up/down actions... + // XXX unmarking an image in marked-only mode results in nothing + // visible focused if we unmark the first or last image in + // the ribbon... + M: { + // NOTE: marking moves in the same direction as the last + // move... + // i.e. marking can change direction depending on where + // we moved last... + // NOTE: marking does not change move direction... + default: doc('Mark current image and advance', + function(){ + toggleImageMark() + if(DIRECTION == 'next'){ + nextImage() + } else { + prevImage() + } + if($('.current.image').filter(':visible').length == 0){ + centerView(focusImage(getImageBefore())) + } + centerRibbons() + }), + // same as default but in reverse direction... + shift: doc('Mark current image and return', + function(){ + toggleImageMark() + if(DIRECTION == 'prev'){ + nextImage() + } else { + prevImage() + } + if($('.current.image').filter(':visible').length == 0){ + centerView(focusImage(getImageBefore())) + } + centerRibbons() + }), + ctrl: doc('Mark current image', + function(){ + var action = toggleImageMark() + }), + }, + I: { + // XXX STUB -- replace with a real info window... + default: doc('Show current image info', + function(){ + var gid = getImageGID($('.current.image')) + var r = getRibbonIndex(getRibbon()) + var data = IMAGES[gid] + var orientation = data.orientation + orientation = orientation == null ? 0 : orientation + var order = DATA.order.indexOf(gid) + var name = data.path.split('/').pop() + alert('"'+ name +'"\n'+ + 'Orientation: '+ orientation +'deg\n'+ + 'GID: '+ gid +'\n'+ + 'Path: "'+ data.path +'"\n'+ + 'Order: '+ order +'\n'+ + 'Position (ribbon): '+ DATA.ribbons[r].indexOf(gid) + + '/'+ DATA.ribbons[r].length +'\n'+ + 'Position (global): '+ order +'/'+ DATA.order.length +'\n'+ + '') + }), + ctrl: doc('Invert image marks', + function(){ invertImageMarks() }), + }, + A: { + shift: doc('Toggle marks in current contagious block', + function(){ toggleImageMarkBlock() }), + ctrl: doc('Mark current ribbon', + function(){ markAll('ribbon') }), + }, + U: { + ctrl: doc('Unmark current ribbon', + function(){ removeImageMarks('ribbon') }), + shift: doc('Unamrk all', + function(){ removeImageMarks('all') }), + }, + F2: { + default: doc('Toggle mark visibility', + function(){ toggleMarkesView() }), + shift: doc('Toggle marked only images view', + function(){ + toggleMarkedOnlyView() + }) + }, - // misc actions... - 82: ImageGrid.reverseImageOrder, // r + F4: doc('Open image in external software', openImage), + E: 'F4', + + H: doc('Show keyboard bindings', + function(){ toggleKeyboardHelp() }), + // '?' + '/': { + shift: 'H', + }, } } -/*********************************************************************/ -// vim:set ts=4 sw=4 nowrap : +/********************************************************************** +* vim:set ts=4 sw=4 : */ diff --git a/ui/keybindings3.js b/ui/keybindings3.js deleted file mode 100755 index 52bbd488..00000000 --- a/ui/keybindings3.js +++ /dev/null @@ -1,333 +0,0 @@ -/********************************************************************** -* -* -* -**********************************************************************/ - -//var DEBUG = DEBUG != null ? DEBUG : true - -var STEPS_TO_CHANGE_DIRECTION = 2 -var _STEPS_LEFT_TO_CHANGE_DIRECTION = STEPS_TO_CHANGE_DIRECTION -// XXX code related to this needs testing... -var DIRECTION = 'next' - - - -/*********************************************************************/ - -var KEYBOARD_CONFIG = { - // single image mode only... - '.single-image-mode': { - title: 'Single image mode', - - // XXX this should only work on single image mode... - F: doc('Toggle view proportions', - function(){ - toggleImageProportions() - centerRibbons() - }), - Esc: doc('Exit single image mode', - function(){ toggleSingleImageMode('off') }), - Q: 'Esc', - }, - - // single image mode only... - '.marked-only-view:not(.single-image-mode)': { - title: 'Marked only view', - - Esc: doc('Exit marked only view', - function(){ toggleMarkedOnlyView('off') }) - }, - - - // help mode... - '.help-mode': { - title: 'Help', - doc: 'NOTE: In this mode all other key bindings are disabled, except '+ - 'the ones explicitly defined here.', - ignore: '*', - - Esc: doc('Close help', - function(){ toggleKeyboardHelp('off') }), - H: 'Esc', - Q: 'Esc', - // '?' - '/': { - shift: 'Esc', - }, - }, - - - // general setup... - '.viewer:not(.overlay)': { - title: 'Global', - - // Navigation... - // XXX need to cancel the animation of the prev action... - Left: { - default: doc('Previous image', - function(){ - event.preventDefault() - // update direction... - if(DIRECTION != 'prev'){ - _STEPS_LEFT_TO_CHANGE_DIRECTION-- - if(_STEPS_LEFT_TO_CHANGE_DIRECTION == 0){ - DIRECTION = 'prev' - _STEPS_LEFT_TO_CHANGE_DIRECTION = 2 - } - } else { - _STEPS_LEFT_TO_CHANGE_DIRECTION = 2 - } - prevImage() - centerRibbons() - }), - ctrl: doc('Previous screen', - function(){ - event.preventDefault() - prevScreenImages() - centerRibbons() - }), - }, - Right: { - default: doc('Next image', - function(){ - event.preventDefault() - // update direction... - if(DIRECTION != 'next'){ - _STEPS_LEFT_TO_CHANGE_DIRECTION-- - if(_STEPS_LEFT_TO_CHANGE_DIRECTION == 0){ - DIRECTION = 'next' - _STEPS_LEFT_TO_CHANGE_DIRECTION = 2 - } - } else { - _STEPS_LEFT_TO_CHANGE_DIRECTION = 2 - } - nextImage() - centerRibbons() - }), - ctrl: doc('Previous screen', - function(){ - event.preventDefault() - nextScreenImages() - centerRibbons() - }), - }, - Space: { - default: 'Right', - shift: 'Left', - // screen-oriented movement... - ctrl: 'Right', - 'ctrl+shift': 'Left', - }, - Backspace: { - default: 'Left', - shift: 'Right', - }, - Home: doc('First image', - function(){ - event.preventDefault() - firstImage() - centerRibbons() - }), - End: doc('Last image', - function(){ - event.preventDefault() - lastImage() - centerRibbons() - }), - - - // combined navigation and editor actions... - Up: { - default: doc('Go to ribbon above', - function(){ - event.preventDefault() - prevRibbon() - centerRibbons() - }), - shift: doc('Shift image up', - function(){ - event.preventDefault() - shiftImageUp(null, DIRECTION) - centerRibbons() - }), - 'ctrl+shift': doc('Shift image up to empty ribbon', - function(){ - event.preventDefault() - shiftImageUpNewRibbon(null, DIRECTION) - centerRibbons() - }), - }, - Down: { - default: doc('Go to ribbon below', - function(){ - event.preventDefault() - nextRibbon() - centerRibbons() - }), - shift: doc('Shift image down', - function(){ - event.preventDefault() - shiftImageDown(null, DIRECTION) - centerRibbons() - }), - 'ctrl+shift': doc('Shift image down to empty ribbon', - function(){ - event.preventDefault() - shiftImageDownNewRibbon(null, DIRECTION) - centerRibbons() - }), - }, - - L: doc('Rotate image left', function(){ rotateLeft() }), - R: doc('Rotate image right', function(){ rotateRight() }), - - - // zooming... - '#1': doc('Fit one image', function(){ fitNImages(1) }), - '#2': doc('Fit two images', function(){ fitNImages(2) }), - '#3': doc('Fit three images', function(){ fitNImages(3) }), - '#4': doc('Fit four images', function(){ fitNImages(4) }), - '#5': doc('Fit five images', function(){ fitNImages(5) }), - '#6': doc('Fit six images', function(){ fitNImages(6) }), - '#7': doc('Fit seven images', function(){ fitNImages(7) }), - '#8': doc('Fit eight images', function(){ fitNImages(8) }), - '#9': doc('Fit nine images', function(){ fitNImages(9) }), - - '-': doc('Zoom in', function(){ zoomOut() }), - '=': doc('Zoom out', function(){ zoomIn() }), - - - Enter: doc('Toggle single image view', - function(){ toggleSingleImageMode() }), - - B: doc('Toggle theme', function(){ toggleTheme() }), - - S: { - ctrl: doc('Save current state', - function(){ - event.preventDefault() - //saveLocalStorage() - saveLocalStorageData() - saveLocalStorageMarks() - - saveLocalStorageSettings() - - saveFileState() - }) - }, - Z: { - ctrl: doc('Restore to last saved state', - function(){ - loadLocalStorage() - loadLocalStorageMarks() - }) - }, - - - // marking... - // XXX not final, think of a better way to do this... - // XXX need mark navigation... - // XXX need marked image shift up/down actions... - // XXX unmarking an image in marked-only mode results in nothing - // visible focused if we unmark the first or last image in - // the ribbon... - M: { - // NOTE: marking moves in the same direction as the last - // move... - // i.e. marking can change direction depending on where - // we moved last... - // NOTE: marking does not change move direction... - default: doc('Mark current image and advance', - function(){ - toggleImageMark() - if(DIRECTION == 'next'){ - nextImage() - } else { - prevImage() - } - if($('.current.image').filter(':visible').length == 0){ - centerView(focusImage(getImageBefore())) - } - centerRibbons() - }), - // same as default but in reverse direction... - shift: doc('Mark current image and return', - function(){ - toggleImageMark() - if(DIRECTION == 'prev'){ - nextImage() - } else { - prevImage() - } - if($('.current.image').filter(':visible').length == 0){ - centerView(focusImage(getImageBefore())) - } - centerRibbons() - }), - ctrl: doc('Mark current image', - function(){ - var action = toggleImageMark() - }), - }, - I: { - // XXX STUB -- replace with a real info window... - default: doc('Show current image info', - function(){ - var gid = getImageGID($('.current.image')) - var r = getRibbonIndex(getRibbon()) - var data = IMAGES[gid] - var orientation = data.orientation - orientation = orientation == null ? 0 : orientation - var order = DATA.order.indexOf(gid) - var name = data.path.split('/').pop() - alert('"'+ name +'"\n'+ - 'Orientation: '+ orientation +'deg\n'+ - 'GID: '+ gid +'\n'+ - 'Path: "'+ data.path +'"\n'+ - 'Order: '+ order +'\n'+ - 'Position (ribbon): '+ DATA.ribbons[r].indexOf(gid) + - '/'+ DATA.ribbons[r].length +'\n'+ - 'Position (global): '+ order +'/'+ DATA.order.length +'\n'+ - '') - }), - ctrl: doc('Invert image marks', - function(){ invertImageMarks() }), - }, - A: { - shift: doc('Toggle marks in current contagious block', - function(){ toggleImageMarkBlock() }), - ctrl: doc('Mark current ribbon', - function(){ markAll('ribbon') }), - }, - U: { - ctrl: doc('Unmark current ribbon', - function(){ removeImageMarks('ribbon') }), - shift: doc('Unamrk all', - function(){ removeImageMarks('all') }), - }, - F2: { - default: doc('Toggle mark visibility', - function(){ toggleMarkesView() }), - shift: doc('Toggle marked only images view', - function(){ - toggleMarkedOnlyView() - }) - }, - - F4: doc('Open image in external software', openImage), - E: 'F4', - - H: doc('Show keyboard bindings', - function(){ toggleKeyboardHelp() }), - // '?' - '/': { - shift: 'H', - }, - } -} - - - -/********************************************************************** -* vim:set ts=4 sw=4 : */