addfile ./camp.png binary ./camp.png oldhex * newhex *89504e470d0a1a0a0000000d494844520000006400000064080600000070e29554000000047342 *4954080808087c0864880000000970485973000007d0000007d001b98be79f0000001974455874 *536f667477617265007777772e696e6b73636170652e6f72679bee3c1a000006f649444154789c *ed9d5d8855551480bf754ba13068884a21210a54a8dec44a32032b3413e95529c9172348aefdd9 *687ab9f99333a38e1484f55069e57351969446656048e043236860880696253e381428ba7a3867 *6ef33ffbec73ee5efbce9c0fe665ee3e7b9d7bbf7bfef65e6b5f51554ae2a162bd032503298544 *462924324a219171bdf50ec488d4e5066009b00c58044c6e52a80bc031608dd6b40740cabbac81 *485d6e078e03b7040c7b11a86a4df79642062175f9105861147e41790de987d4e501e019c35d58 *68264484d922b48b704084d3226c14a1cd6a7f52e60162187f91c9294b84c781030c7df3bd40a7 *2a9b82ef142075590a7c6a11bb8fe0478808d3808f18fe9b3805784384eeb07bd5e0a451dc0616 *a7acb780dbc668533592720a386a10b7818510d7eb4470295ad32bc002e060c8b8fdb110d29ba1 *ad85945e6031c9917c1cb81a327ef08bba081f03cb336eb64b9535cdd89fa290ba7403d5bcfd58 *1c21bb816b19b7b1baa63851940c3010a2ca8fc09b1e9b4629a54819603896957eb83e6f249ad3 *57d132c070f83dfd5077796c1ac591d20c19603c1fd2aa529a25032298a06a3529cd9401110881 *d691924386f37b8b4208c42f258f0cada9f34d483442205e29a16440bf397511a693cc212f07ee *f3086e4d55a421b53042ca805488082b800fb09d9c2982aa08bdaa6c28a2b3d032002ae92c5d17 *ad2fa38ff5223c96b7130b19905c43b600b7fa76102142ce24052b199008999fa7834899eabba1 *a50c4884fc9ab79308b9d767236b199008319f476e0247b26e10830c48847c06fc535487117009 *783ecb0681645c766873b5a2ca11e0519274c6f1c03655ceb9360e78647ce5d0e644052095f230 *f025f087c7cec542872a5b5d1b073e4ded73687328badcde1c13571daabce61c27f03523cda83f *cbc849dc0781c5518d65e590d119b30c00ade9bfc03dc01e60f0517014784a6b7a399a2324a78c *b5ce7122b89b4a93bae7913c729c044ea5396171d487e490d1a5caabce7122903116e64202ca78 *12f8dc234e3019603c1f9243c6f62c3252d679c4092a030c85e494f14aa65875990f3c98314e70 *19602444840df8c9d8915546cadd19db9bc8009bfa9036c87cba8144c6cb9e61bfcbd0d64c06d8 *1c212f9014e66461670e19684d7f037e77686a2a036c84acccd87ea72a2f15107733706594d7cd *65808d901319da76172403ade9bb240f63a707bd74095815830cb0a90f6907a701c06e555e2c3c *7e5d6e06e692140ef50267b4a67f171dc7170b21b349c66e464baa8826c33d3416f5213f030b81 *f3c3bc7c0dd8325165806d7dc834923abe36fe3f7dec4e0b7a262ce6635925039990cb33495dee *021e2119f6fede78770650d81122c243c073240f7d5348e6e8576799df6e36529755c0ebc01dfd *fe7d04d8aa35fdc266af06528810113603ed0cbd49380f3cadcad7b983e444ea723f7018983442 *93281e0c730b7118b555604e7a776542faec710cb8738ca6e65272ddf68ab093b1476d05f2273f *e7642e63cb00a8a6b38a66780b4965b87e9bacf387b32de76128c54b88083b70970130cb274e81 *6411028652320b4965641d637a3f6b9c823943328898051329998488b09dec327a81b7336e5328 *e9e0a1cf7c4a7029ce4252193e43e19daaf679c35ad3f7f02d280d28c5e9b657842efcbe61d18d *da5ae766495d2691ccf1cf04660087b5a63f355e1f4bc87892d1879514a9cb14e01030a7dfbf15 *d80bacd59afe39aa10113ac12bcb235a197d18245b4f06f693947e0cc70560fa88d790f12c0320 *fd50435e53ba1859062459f14b8615224207e358461f81a52c7068b36c889054864fde544bc9e8 *23a0149787e345038488b08d0924a38f4052ae736833b9212495e15c673188aa086af8774e84fd *227ee5d060724d19960a8008ebf0971103538127801f443227553788414a254d36702e078b9c36 *e0602b4ba900ef0037e5ed28226e0496e6e9c0524a85ec7513adc0ccbc1d5849a9003dbe1b47cc *8c223ab19052a1b5170a1889c2527b424ba9307cdd742bf317b0bec80e434a115545844d24f94a *ad8e02cfaab2a7199de75c26d669bbc6686f8e22cc18f805f804d8a7cad966066af642ca0386df *c7c302f92108b6d478acebe6c6468e6bca980c19ed2da5b8d12c29c3ce879452dc68869411670c *4b296e142d65d434a0528a1b454a714d039a50775f017f4f7d686cd772841c52b6a8b6ce43a7d1 *efa93770ce5ccc71fa6a4fabab5a850e8c6440c6dc5e4f29159252b7e889e0f7d4b367bf7b4ac9 *bad88c15d6bfa7ee571fe221a5558458af837fc1bb822aa314f3ec7747acd7c13f96abc6d051ca *7960759e3801b1fc3df58bc09adc6b9da45236327cd9989294454753ab3e1ac6bfa75ed59af614 *b970401bc96a712b49d6c4fa1ef8c6b21cda973453bd8b44ce2cdcb20e7de82159a4ff80d6f45b *28d73a898ea8d67e2f298544472924324a2191f11f93151b2bbefcabbd0000000049454e44ae42 *6082 addfile ./camp.svg hunk ./camp.svg 1 + + + addfile ./favicon.ico binary ./favicon.ico oldhex * newhex *000001000100101000000100200068040000160000002800000010000000200000000100200000 *0000000000000000000000000000000000000000000000ffffff00ffffff00ffffff00ff000014 *ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff000080002100800030008000 *300080003000800016ffffff00ff000004ff0000abff0000f9ff00000cffffff00ffffff00ffff *ff00ffffff00ffffff000080001a008000fc008000ff008000ff008000ff008000efff000004ff *0000abff0000ffff000096ffffff00ffffff00ffffff00ffffff00ffffff00ffffff0000800001 *0080005000800076008000f7008000ff008000ffff0000a6ff0000ffff0000f5ff0000a1ff0000 *a0ff0000a0ff0000a0ff00009eff000038ffffff00ffffff000080000e008000c7008000ff0080 *00e4008000ffff0000d5ff0000ffff0000feff0000f8ff0000f8ff0000f8ff0000f8ff0000f7ff *000069ffffff000080000d008000c6008000ff0080007000800098008000ffff000020ff0000e0 *ff0000f9ff00004effffff00ffffff00ffffff00ffffff00ffffff000080000c008000c4008000 *ff00800070ffffff000080006e008000caffffff00ff000020ff0000e0ff0000f8ff00000dffff *ff00ffffff00ffffff00ffffff00008000a2008000ff00800070ffffff00ffffff00ffffff00ff *ffff00ffffff00ffffff00ff00001eff000062ff000001ff00000bffffff00ffffff00ffffff00 *0080004b00800054ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff *00ffffff00ff00005fff0000f9ff00004effffff00ffffff000080004a00800057ffffff00ffff *ff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ff00001bff0000e0ff *0000f9ff00004effffff000080009e008000ff00800070ffffff00ffffff00ffffff00ffffff00 *ff00006bff000098ff000098ff000098ff000098ff0000b6ff0000ffff0000f9ff000046008000 *0c008000c4008000ff00800070ffffff000080006c008000cdff0000c4ff0000ffff0000ffff00 *00ffff0000ffff0000ffff0000ffff0000ffff00007fffffff000080000d008000c6008000ff00 *80007000800098008000ffffffff00ffffff00ffffff00ffffff00ff000001ff000096ff0000ff *ff0000a9ff000004ffffff00ffffff000080000e008000c7008000ff008000e4008000ffffffff *00ffffff00ffffff00ffffff00ff000060ff0000ffff0000a6ff000003ffffff00ffffff00ffff *ff000080005500800076008000f7008000ff008000ffffffff00ffffff00ffffff00ffffff00ff *000020ff00006aff000003ffffff00ffffff00ffffff000080001b008000fd008000ff008000ff *008000ff008000eeffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff *00ffffff00ffffff00ffffff000080001c0080003000800030008000300080001affff0000cfe0 *00008ff8000000f0000000e400009fce0000cf9f0000ffff0000fbff0000f99f000080ce000000 *e40000f8f00000f9f80000ffe00000ffff0000 addfile ./index.html hunk ./index.html 1 + + + + +
+
+
+ The Version Control System
+ + + + + + + + hunk ./index.html 7 -The Version Control System
++ Camp (Commute And Merge Patches) is a version control system + based on patch theory similar to that of darcs. Currently, camp + is far from complete, but we are working towards a specification + of the theory, a formal proof that it is correct, and a high + quality, efficient implementation. +
hunk ./index.html 33 - - hunk ./index.html 20 + + hunk ./index.html 30 - +
+
+ + As far as camp is concerned, names are a non-empty sequence of + ASCII digits, upper and lower case letters, dots and dashes. + Names may not begin with a dot or a dash. +
+ ++ The way we actually generate names is as follows. +
+ ++ First, when a repository is created (by init, + get or put) we call + System.Time.getClockTime, which gives us a value like + TOD 1221077558 958838000000. We then convert these + values to base 62 and combine them with a dash, giving + 1kDw3k-gSC6x2g. We store this value in the + repository. +
+ ++ Then, when the patch is recorded, we do the same thing to get a + second string, say 1kDw6G-eR4aJ2. +
+ ++ We also take a hash, in a format and with an algorithm to be + decided, of the patch meta data, and convert it into base 62, + say d3R0pK84. +
+ ++ Finally, we combine these three parts with dots, giving + 1kDw3k-gSC6x2g.1kDw6G-eR4aJ2.d3R0pK84. + If this patch is already in our repository then we increment + the picoseconds component of the patch creation time and try + again. Otherwise we are done. +
+ ++ Thus in order to get a name clash, you must create two repos at + the same time, create a patch in each at the same time, and + use the same patch meta-data (or hit a hash collision). The only + time this is likely to happen is when running tests involving + multiple repos on the same machine. You can fix this by using a + different author for each repo, or by specifying different + strings to be used as the repo name for each repo. +
+ + + + addfile ./repository.html hunk ./repository.html 1 + + + + + +
+
+ This describes the planned camp repository format.
+ ++ The camp repo info is in the _camp subdirectory, + which looks like this: +
+ ++_camp/ + primary/ + secondary/ + settings/ ++ +
+ We will now discuss each subdirectory in turn. +
+ ++ The primary directory contains everything that remote users of + this repository need to know, i.e. it contains what you need to + know in order to get the repo, pull + from it or push or send to it. +
+ ++_camp/primary/ + format + inventory + <files referred to by inventory, possibly in subdirectories> ++ +
+ format contains the version number (in the + Data.Version sense) of the primary format. If you + don't understand the version then you can't use the repository. +
+ ++ Each line of inventory is of the format +
+ ++name file offset length ++ +
+ where name is the name of a + patch in the repository. The context of this patch is the set of + patch names in earlier lines of the file. The representation of + the patch is in file, from byte offset + to byte offset + length. +
+ ++ The other files in this directory contain the patches pointed to + by the inventory. Some files, or parts of some files, may not + be references by the current inventory. However, we cannot + remove files when we stop using them, as other people may be in + the middle of a get, and thus may have an inventory + that refers to them. +
+ ++ The secondary directory contains other information about the + repo, which may be necessary for other commands. +
+ ++_camp/secondary/ + format + pristine/ + modification_times ++ +
+ Again there is a version number in format. However, + in this case, if you don't understand that version then it is + guaranteed to be safe to remove the whole secondary + and recreate it, as if you had just done a get of + the primary directory. +
+ ++ In the pristine directory is a copy of what the repo + looks like after applying all the patches in the inventory. The + directory can optionally not have the read permission bit set, + so programs cannot easily accidentally descend into it and alter + the files there. +
+ ++ The modification_times file is a list of + \NUL-separated fields, each of the format + maybe_time filename, where maybe_time is the + modification time of filename if we believe it is + up-to-date in the repository, and the empty string otherwise. + This is so that record can be implemented + efficiently. +
+ ++ The settings directory contains user settings, e.g. the default + author to use. +
+ + + + hunk ./repository.html 88 + ++ This format allows for the simple "each patch in its own file" + approach, but this wastes disk space and gives slow access + times. Alternatively you can concatenate all of the patches + and put them in a single file, with the inventory giving you + the offsets at which you can find each patch. Or you can go + for some sort of hybrid solution, e.g. splitting patches into + files based on what tags they are part of, or making sure that + each file is a certain size or contains a certain number of + patches. +
binary ./camp.png oldhex *89504e470d0a1a0a0000000d494844520000006400000064080600000070e29554000000047342 *4954080808087c0864880000000970485973000007d0000007d001b98be79f0000001974455874 *536f667477617265007777772e696e6b73636170652e6f72679bee3c1a000006f649444154789c *ed9d5d8855551480bf754ba13068884a21210a54a8dec44a32032b3413e95529c9172348aefdd9 *687ab9f99333a38e1484f55069e57351969446656048e043236860880696253e381428ba7a3867 *6ef33ffbec73ee5efbce9c0fe665ee3e7b9d7bbf7bfef65e6b5f51554ae2a162bd032503298544 *462924324a219171bdf50ec488d4e5066009b00c58044c6e52a80bc031608dd6b40740cabbac81 *485d6e078e03b7040c7b11a86a4df79642062175f9105861147e41790de987d4e501e019c35d58 *68264484d922b48b704084d3226c14a1cd6a7f52e60162187f91c9294b84c781030c7df3bd40a7 *2a9b82ef142075590a7c6a11bb8fe0478808d3808f18fe9b3805784384eeb07bd5e0a451dc0616 *a7acb780dbc668533592720a386a10b7818510d7eb4470295ad32bc002e060c8b8fdb110d29ba1 *ad85945e6031c9917c1cb81a327ef08bba081f03cb336eb64b9535cdd89fa290ba7403d5bcfd58 *1c21bb816b19b7b1baa63851940c3010a2ca8fc09b1e9b4629a54819603896957eb83e6f249ad3 *57d132c070f83dfd5077796c1ac591d20c19603c1fd2aa529a25032298a06a3529cd9401110881 *d691924386f37b8b4208c42f258f0cada9f34d483442205e29a16440bf397511a693cc212f07ee *f3086e4d55a421b53042ca805488082b800fb09d9c2982aa08bdaa6c28a2b3d032002ae92c5d17 *ad2fa38ff5223c96b7130b19905c43b600b7fa76102142ce24052b199008999fa7834899eabba1 *a50c4884fc9ab79308b9d767236b199008319f476e0247b26e10830c48847c06fc535487117009 *783ecb0681645c766873b5a2ca11e0519274c6f1c03655ceb9360e78647ce5d0e644052095f230 *f025f087c7cec542872a5b5d1b073e4ded73687328badcde1c13571daabce61c27f03523cda83f *cbc849dc0781c5518d65e590d119b30c00ade9bfc03dc01e60f0517014784a6b7a399a2324a78c *b5ce7122b89b4a93bae7913c729c044ea5396171d487e490d1a5caabce7122903116e64202ca78 *12f8dc234e3019603c1f9243c6f62c3252d679c4092a030c85e494f14aa65875990f3c98314e70 *19602444840df8c9d8915546cadd19db9bc8009bfa9036c87cba8144c6cb9e61bfcbd0d64c06d8 *1c212f9014e66461670e19684d7f037e77686a2a036c84acccd87ea72a2f15107733706594d7cd *65808d901319da76172403ade9bb240f63a707bd74095815830cb0a90f6907a701c06e555e2c3c *7e5d6e06e692140ef50267b4a67f171dc7170b21b349c66e464baa8826c33d3416f5213f030b81 *f3c3bc7c0dd8325165806d7dc834923abe36fe3f7dec4e0b7a262ce6635925039990cb33495dee *021e2119f6fede78770650d81122c243c073240f7d5348e6e8576799df6e36529755c0ebc01dfd *fe7d04d8aa35fdc266af06528810113603ed0cbd49380f3cadcad7b983e444ea723f7018983442 *93281e0c730b7118b555604e7a776542faec710cb8738ca6e65272ddf68ab093b1476d05f2273f *e7642e63cb00a8a6b38a66780b4965b87e9bacf387b32de76128c54b88083b70970130cb274e81 *6411028652320b4965641d637a3f6b9c823943328898051329998488b09dec327a81b7336e5328 *e9e0a1cf7c4a7029ce4252193e43e19daaf679c35ad3f7f02d280d28c5e9b657842efcbe61d18d *da5ae766495d2691ccf1cf04660087b5a63f355e1f4bc87892d1879514a9cb14e01030a7dfbf15 *d80bacd59afe39aa10113ac12bcb235a197d18245b4f06f693947e0cc70560fa88d790f12c0320 *fd50435e53ba1859062459f14b8615224207e358461f81a52c7068b36c889054864fde544bc9e8 *23a0149787e345038488b08d0924a38f4052ae736833b9212495e15c673188aa086af8774e84fd *227ee5d060724d19960a8008ebf0971103538127801f443227553788414a254d36702e078b9c36 *e0602b4ba900ef0037e5ed28226e0496e6e9c0524a85ec7513adc0ccbc1d5849a9003dbe1b47cc *8c223ab19052a1b5170a1889c2527b424ba9307cdd742bf317b0bec80e434a115545844d24f94a *ad8e02cfaab2a7199de75c26d669bbc6686f8e22cc18f805f804d8a7cad966066af642ca0386df *c7c302f92108b6d478acebe6c6468e6bca980c19ed2da5b8d12c29c3ce879452dc68869411670c *4b296e142d65d434a0528a1b454a714d039a50775f017f4f7d686cd772841c52b6a8b6ce43a7d1 *efa93770ce5ccc71fa6a4fabab5a850e8c6440c6dc5e4f29159252b7e889e0f7d4b367bf7b4ac9 *bad88c15d6bfa7ee571fe221a5558458af837fc1bb822aa314f3ec7747acd7c13f96abc6d051ca *7960759e3801b1fc3df58bc09adc6b9da45236327cd9989294454753ab3e1ac6bfa75ed59af614 *b970401bc96a712b49d6c4fa1ef8c6b21cda973453bd8b44ce2cdcb20e7de82159a4ff80d6f45b *28d73a898ea8d67e2f298544472924324a2191f11f93151b2bbefcabbd0000000049454e44ae42 *6082 newhex * rmfile ./camp.png addfile ./camp_text.png binary ./camp_text.png oldhex * newhex *89504e470d0a1a0a0000000d494844520000016b00000064080600000040671119000000047342 *4954080808087c0864880000000970485973000007c9000007c90106521dd40000001974455874 *536f667477617265007777772e696e6b73636170652e6f72679bee3c1a00001bd249444154789c *ed9d79985d5599ee7f6f1230404010648a227d11414126c1a0422b83e0c028322620200e081ac1 *6b2bd25a1e15ed8b4a420860838088032020a0800222433a2d5e02281d06010744051903280849 *defe63ed8a95a286b3d7dae7ec7d2aebf73ce7c953557b7deb3b9553ef5e7bad6f906d324ba396 *5e0eec074c05ded4a16916030f003f058e719f9fedd03c994c660ca02cd64ba3967600ae062674 *71dadb80c3dde7dbbb38672693e921b2580f402d4d2008e7a6354cff276063f7f9991ae6ce6432 *0d675cdd0e348ca3a847a8012603afaf69ee4c26d3706a136b89ed253e2f71bdc4bd12d32556ac *cb9f82b7d63cff4e35cf9fc9641a4a2d622d71307023d04710c8570333813f487ca00e9f0aeeab *716ea86f559fc9641a4ed7c55a6223e0b4617ebc067086c4c7bbe8d240ea16eb4c269319926e46 *3cf4f34d60d228d7cc90c06666371c1ac075c0c3c05a5d9eb7a790246005c2ffe34a8080a781a7 *6cffa34edf3299b14a1d62bd5a9bd7755db0dde7fbd4d25b809f10b6669679246d0cbc05d80ad8 *a078bd0a586e98eb5f001e05ee2e5e7701b702bfb0bda81b3e673263913ac4ba4c685a1d827d7f *21d85f05a61084496d0c1dc73002d64b489a08bc13d89f70e0b9464913cb01eb14af1d067cff49 *49d70257013fb4fd4405ee6632cb0c5d8fb396b806d8b9e4b0636ad812691bb5f4524226e29444 *5317b8cf0754e052698a15f4ff05f60556e9f0747f07ce034eb13dbfc373653263823aa2414e8e *1833a3c643c711514bab508d50d782a4cd255d0ccc07de4fe7851a6045e043c0ff48fa89a42dba *306726d3d3745dac6d7eccf0d12023d138c12e84fa6a7a50a825ad2c6926300f780ff5c5dcef0a *cc93748ea4756bf22193693c75fd817e143827625c6304bbc7857a47c2c1df74607ccdee40f81c *1e0adc23e9b09a7dc9641a492d626db31838821e15ec5edefa90f409c24d6672ddbe0cc124e06c *49e74b7a69ddce64324da2b674f35e15ec0142bd6d1df3c72269bca46f015fa319abe991d89fb0 *35b27ecd7e64328da1d6424ebd26d83d2cd41380ef01efabdb97126c00dc2869c3ba1dc9649a40 *ed55f77a45b01384faefc029d57bd41e92c601e7139a29f41aaf2408764e50ca2cf3d42ed6d07c *c14e10ea6781dd0969ec75f145609f1ae74f656de05249a39528c864c634438ab5c4c46ebf80e5 *81a381ef46bc8f8e097621d43f214ea877739f6b136a49fb029fa96bfe0ad904f856dd4e643275 *b224dd5ce235849e835309fb85bd46e5a9e96a6965825097edc3d804a17e05a16856a730a106c8 *83c093c0eac09a84957027d847d291b64fef90fd4ca6d14c0090380a985db32f553043e2299bb3 *530d1542fd53e2847af73a85bae074aacf46bc99f0e47325f047dbcf0fbe40d29ac0f684fa2207 *11aaf355c509927e60fbd10a6d66323dc13889358113ea76a4424e95d22ae65520d43f4b993f15 *490700bb55646e31300bd8d0f6b6b64fb17dff50420d60fbafb62fb67d04b01ed022fc5eaa6035 *e03f2ab295c9f414e3801381b194803091903e1d45e2d64713847a79e02b1599fb03b0a3ede9b6 *4b3766b0fda8edcf039b01d757e4d361927a719b2e9349621cf086ba9de800ebc50c1a20d46f2e *39b411425df00160fd0aecfc00d8ccf60da9860aa1df91b0424f651cf0910aec64323dc538e037 *753bd1015e5b7640a250efd104a12e6a511f5f81a92b81836c3f55812d001c984ee8bb99ca6192 *ea6eae9cc97495098c4db1beb6ccc5150875a9f93ac8fe84a2ff29fc12d8cff6c20afc7911b6bf *20693d4239d6585603f6262ecc333388a24ddbca043d7866b8f3880ae75b9d90f0b44a31e702e0 *71e0815eeb2654249dbd8a100db532b010788c1029f55895ef67027009e1b1b21b758cbbc15d84 *2e2f6dd125a16ef780ed85923e0ce6c8c4f10f00bbd9fe5ba29dd1389ab0fd9652c7fa9d5424d6 *c51fdc2684c25c9b10fef8d6278422ae488868194f1094257f88847e9db70173813b6d2faec29f *4e529c69ec0abc03783de129f4650cc8b990f40f42f3e8f9c00dc065b6ff9430a780b701d308dd *83fe65984b9f95f46be026e002dbb7c4ced949246d0abc177817b029c3473cfd4dd22f08efe75a *dbff9534af6d24b624b45beaf546b10b81bd6cae68e7e242a8af22f4182c43a915b55a9a083cc4 *e807b9c7b9cf51d10e92b624f43a4c613fdb3f48b4d11692b621ace263790458cb91ad8e8aaa7e *bb130ea3dfcee84d9c47630121b4f14ae09cd42d24491f01762939ec06db3386b1b732f06f841b *e5aa25ed1ab81468d9fe559981927606be4e38642ecb3dc09781efc6ac50254d23886a59f61b26 *2c7517e038c28d2786f98490daf3623e1f4bda7a496c007c81b0e2e95462433b8c27ee0f672170 *a0cd45ed5cac96261156d46585fa3982505f5366905afa26233ffabf006ceb3e4709aea4af03c7 *c68c2db8c9f6bf268c2f8da41f911662f806bbdcefab280cf5094251ab8909738fc4d3c059c02c *dbbf8b3120e90cc2617119be677bea10b6762ffc79798c2f035844881eebb33de25360f1b4f235 *e098c43901ee05a6dbbeaacc20495f26886b5956b4bde46958d2cb09f57df68fb035148f11328b *bf59e6696cc9a38fcdfd36536d36b659b58e17e1b1332699642170505385bae02c86dfe6307058 *ac5017ec9130d6504bc9d92f268edfbcdd0b25ad21e95c42c7f50fd139a186b077f971e03e4933 *8bad875a90f425e072d2851ac242ea38e0ea62a53edc9c2b013fa41aa106d810b8b2a873feb28a *6cb645b1e5710bd5093584fdedff046e2e9e88dba211859c00249627848b95159d7ea16eebf1bd *26a1c67dfe6f82b80c7533faa4fb1cbdff2ae9759094087471d9156a15d8fe25707f82898ddab9 *a8a89172177008ddfdcc8f2374e39953476d6e4933a8263a68306f03ae1daab85691c17a13698b *87e1d89ff0bb8c0acd2d8ba4ad8139448602b7c1d6c05c4907b7737123c43a51a8a79614ea983d *ea24a1eec77dbecb7dde09d893908abd35b08afbfcf514bb85bd14ce4d1c9fc2c5096347156b49 *c70317026b24cc93ca36c06d9276e8d684923e43679f96de087cbfd8eee89f73027011d0f66a31 *82d71204ee151d9c639ca4ff035c41e713062702df2e9ec0466c0a3261a41f76830a84fac2b6e6 *f9a7506f57729ee7803d53857a20eef3e555d92a785bc2d84709a9f575713a10b5af0bfc75a41f *4afa0fe05391b6ab6655e01249536c772a5c56b0648f3a758ba91d76239413f86cf1f5d7087561 *3acd64e03249dbdbfe7b07ecaf4cd0a4353b607b38a6032b4b3a62b843f35ac53a41a8175142a8 *0b3e4dbc505f5d725cb7d93a61ec05a31d167512dbbf07be51b55d4907d11ca1ee6755e07249db *da7eb203f627161de2cfa57b4fcdc749ba9cb00d37bd4b73026c45a86954d5bef8404e28ec779b *c309514543060ad4b60dd24da12e6a521f55729e9e10eaa24e46caa1cbf955f9d21424ad039c59 *b71fc3b011705e876caf009c4d481aea16e381efd3d972bcc3715487dabe1dde019bed728ca421 *b5aa16b1ae40a82f2839ee48cac596f6845017a4acaa17114ebac71aff4e4866692abb492a9b84 *d50e3b10125ebacd06d4f3fb5e8eb8d0bca6f355492f3a8fa96b657d0671423d2d42a8a15cb2cf *73c05e3d22d410976cd0cfddb69fabcc930620692dcac7278fc62384cf5f957cba627b002fe980 *cda6b39fa4b1927dddcf0a8443c7a50e1cbb2ed6121b016d85aa0ca05fa8631fd9af6ff3ba7ea1 *aef3c0ad2caf4c187b5b655e348703082bae14ee20243085681dbb3fed7c5342f8d8cf13ed4358 *5d6f5a819d7631f017c27bfb35f067d2cb1bb4cb2242bd9ed308e57bcf046eafc8f64aa4474335 *913712ba762da18e95f5a74ace9b2ad40037128ae88f442f0a35404a0853557f304de2a084b1bf *2bc66f6efb6cdbf36c3f0d60fb79dbf36d5f687b476027d2b690047c38617cbbdc43d8835dc7f6 *bab637b3bdb9edc984b0b4dd087bce9d601121f36f5ddb6fb77d94edcfd8fea0ed2d09b561febb *8279de51818d767896109ab83fe189762d42efd8b58bafdf43487e1b314aa904c70d0c8decaa58 *4b8c070e2c3164117070a250e33e3f097c8ee105bb57851ad256d67756e6450328ea7d6c1339fc *56608aedefb7536fc4f6758478fd14a1eb74dcf589c0a6b6cfb1fdf0e01fda7ed6f615b60f2a7c *79bcc2b917101a577cccf690e255d419d91edacb9318816ec4af9f0b4cb6bd6f71c3bea3e88af4 *82ed878baf7f5874489a0c7c12782671ce8d09d525812e8bb5cd2242319376e817ea4aeefaeef3 *0984d5d05f06fde80e424d8e5e146a081f8c589ea8cc8b66b02d45ac71491e27541b7ca4cca0a2 *d8cfa1846d85185e57d49de80427dafe54bba56e6d5f0fec43c85f48e51fc0ceb66f6c63de4584 *a799b909f3ad53945ded04cf037bdb3ed4765b7f2fb617dafe1aa182636a4cfd92f3973ab641ae *6fe39a45c0215509753feef3f5847dc72d08f506d601b6745fb94a624d41d272a435a45d50952f *0d614ae4b8e36d0fbe89b74521d82909289d289e7537ff4c54699b42b0ab48fe3aae4c79d3e286 *328db495685ba5074a62e070db97460db61f007626b4c78b6527496bf41becea0bbc037811d8c3 *bc16820feab65fbdf822ec393ae1b56eddefa1e2dfc7b7237e074f10aaaca5ccbb42c2ffc149c3 *d83c23c1e68712decbe1899fa93b29aa7946cc3d2b61de770c61efcb89ef6546459fcb29842dd8 *583f3e6cbbfb2b6b9b9f13ee3643ad64160007d87cafbb5ef52ca9b1ad636d65bd7ec4989b9c98 *b2ec504e33b67ef5ba29730fc142880a6fede732d2b64266b850a808fe3361deaae3bc17005faa *c290ed9b493bdb7837d4946e6ef373892d08699d13098f3f0b80d36c1ea8c3a71e65a584b18bdd *f98e30dde65642485a1992ebb448da84f84e4b5597fcbccb09a9ecb61f93f42742b79cb22c22e1 *46617b7e3177cc39cc8845902238c9f66315da3b9e105c1173a6f226a8b13688cd5fa93e796159 *232509629ca4e55c635d90aab1ddf59adc45e3deaf2498a83a35bc8ad8f9278813eb5f39bdc9f2 *5c60df441b55f09d2a8dd9fe7dd1e2eb4d11c35797f49adaabee759ba2fade76849e8b57bbcf73 *6a762985d48a63ab10ba56644a32a0afe04cd2b248ab5e595711e31b1b2554454df4df56602395 *f9b63be1c785c48935c094cac45a621a7018a125d724e041e0fd360f5635470a6a4984023afbf3 *cf278acfaaa539c0977a3474efe9c4f159ac4b20696d4203893713b270876bfc5a86b2fd104723 *f53301f1f1d655c46977a21a61597edc21bb291ab341b258174599ce03f61bf4a3d701b74b1c6a *77eccd97e1130c4adf2cd80ef8895a3ac67d9ed9659f52490dba1fb635d3b28aa497104478c3e2 *f5eae2dfcde84c7de3aa9f6e9f1dfd9251893d78aee2c0ba8a9b4d2a9dea9a742f216e3ba6cddb *fa491f1489e518b97adeeac0e512afb5b92765ae14d4d21b09613c2331432dd97d3eb91b3e5581 *ede7242d22fe70a55309193d4111bfba15a1b3c916c5bf1bd2900e4a35125bb4aa8af38fd84892 *2ab9ab13466d2f94740ff0fa88e1f1625d08f5458c5e3d4f8450bddac41ad891f68afbcc544bf4 *92601356d7b1ad8736027e56a12f8d46d20a843a123b10f69b3725ee743e337659447ad6e148dc *4d9c58af1bb5826863453d981d63e6a99032216a33d552373b5ea492b24ff8bacabc6830923697 *7426f0107009f051c21f4c16eacc601eb6fd8f0eda8f3dbc5da9b4580f10ea326509bbd28d7804 *caeeedf69260a774077f6d655e3410496b493a9bb0077904f1b1d0996587d473a04ed95fb19458 *17427d21e5ebc7ce2e797dd5dc4af97db8996ae9639d70a662ee4d18bb49655e340c496f21c41c *1f46de83ceb44fa7c53af600b57db11e20d47b959ce401e0bb25c7544a51a8e9ff450c3db90704 *3b45acd792b445659e340449ef26340858a74b53de47b9adb64c73e9b4583f1f396e425b629d20 *d4063e695752763195cf4154cd91a60b768a5843f9f66a95226982a455235f2f0a3d94b42d619b *2eb55b4c3b3c087c90b09df4a27ad1999e64b42625a9c486cb3e336a344821d4171027d447b844 *17f24ee23e2f524b87145f96ed26727211d6774aaa1f6a69434262c546841a08b3dde7942600a9 *27d77b005f48b491c2fb816f448ebd9401c5d9254d22dc9053cac68e447f83e16b8bd75c8712a9 *484acd26cd34834e77868f4d825a30a2580f10eabd47ba6e08fa85faec48c73a42a260cf2ac2fa *a2055b2ded42c88e1ab8ea3b422d9d047cd17d518595ee254439ac1de9d65692d6b7fdfbc8f1a9 *bc3361ec4d83befe12d56415f6b300f8257033f00b608eede1123fb2588f0daace281d4c6c98ed *8261b7410aa13e9f3122d4fdb8cf8b804388db1299a5963e1a336f919873092f7e3c5f8ed097f2 *5b31768b72942905e3051c9b303e7e62697942f79e589688b5a435810f253b1544f968c2d6c66a *b677b1fd5987f6572365e83521f32e93ceea45dd974ef1eac8714f0d29d612130842fd9e92061b *2dd4fd0c10ec981ab3b3d4d2d16506a8a5718415f548254d77574bb177ddd4ba26ef5fd28da2bb *ec41a82313c3df58bac2dc918472bbb15c006c68fb4db64fb57d77c9bacc79653d36984487425a *254d2464cac6f0e48bc47aac0b753f85601f4c9c609f5252b03766f4d4ee9700ef8df005c2ca3a *254d7745a08e43d46312c65ee5a5fb0b967d021cc8076d1f60fbbe041b5517bfcfd4c7761db2fb *06e20fbe7fb394580f10ea7d4a1aea29a1eea78b82ddeea34f54a6a743f7e879316307305d52d5 *5d4b8645d21442f5ba58961c5c4b9a4c38b48de144db6726f8d14fa70fa632dde3ad1db2bb6bc2 *d85b971c3026083584839deba4a8b64aa918f8b31d5744a638743c98b0777b40c9e1a7145122a7 *8e725dbbf1ec29dd2ece04b64e18bf0aa136f3e0ea89952369026989527f63e932965b46da790a *f87c821f038929d69f69267b4b5acd6d76336f87a2b9f5110926e64d08869840585dc60835844e *caa5bb2957c8f312f38043edf2a16c85604f2bbe2c2bd8b38b2891d104bbd37c8790f893729abd *afa4436c7fbb229f86e3d3a4dd587e58f43dec67d3483b170eb21345f144b27aaa9d4c63588190 *f97a528536f7263e49ebefc03dfd2bbe9388df2f6d02cb133a30cc91e244a0d812994678ba28cb *6cb57454ccbc5551347d3dab0253df90b45505768644d2bb08094a290cae3bfe8a483bb727fad1 *4f4a444ba6994c1f2ae92a86a2467a5f8289db6d2f1a27b121210b6b2cf072e0e712af8919dceb *820d9c467a06d60ac03592b6a9c09fa590b42b43872f96e106db83f7e763234afe98e0c7400e19 *fd924c8fb11e30ab225b5f24adc2e5a510f652cf20adf16ad398046c1b3b788060c774699ead96 *3e123b772a45dfb82a0e795f06fc4c52252254a4947f86d0493cf5b3f6f521be171b89919ce928 *692742bdf6ccd8e3504907a61890b433a14b552c8b290220c641dc2ab4e124bda742b0a71227d8 *a7d629d884049b472ab0b33270aea4cb2445c59d2ab03321d1e404e2da190de47adb3f1ae2fbb1 *35bd374e7146d2bf50cdd653a6b97c5b52d4a1bba4b701979156f5f106db0f5218f95582a1a612 *9b25b48444c1ae6d856dfb71d2eee483d903b843d24592de2369a4c49efe55f456928e25b447ba *86105f9aca0bc070db4c0f45da8cf64bd2e6c05c7214c8586702f03d49c715111d6d21e908e00a *d2e3ef97542c1dc7d8ac16f6832a8c2408b608827d64157e94c5f679c075159a1c4f8814ba1878 *4ad23d927e24e95b92664b3a4fd28f25dd4ca8a7318fb05db151853eccb0872d78f597489bbb17 *2bffb691b482a4e38139c4d763c9f416e3093d5c6f93b44fd11eee45481a2f696749d711426953 *85fa5106e413f4c7bb1e405aaa6e93b8c6e6e2aa8c15617d5309025ce67148842d11881793140e *265488abbaa673ffd65937b7cf6e61e40892ff49b07d96a4fd6dff62a48b24ad46c8eafd1cf577 *3ecad4c32684beb3cf48ba8150abff614242d46442e6639537f096ed25356726d8cc93389a7027 *e8f59e740f12faeb55ca00c18608c1263c0e7515db7f96b4177003bd7d237e1c78ef287df1e602 *7f06623230d703e64afa3e7035a14dda1f0971d393810d807713b2daba51233bd37c26113e139d *e4370c2a1d3c01c0e62c89e509c21223d8f711dfbe3e95c5843fd6ef0037da9d291eee3e2f4c10 *ecdd3ae0d2a8d8fea5a40f00e7d5317f05bc001c64fb0f235d64db922e2154cb8b418492b965cb *e666329de253836adfb024dddce67429ecb5525eb06f06de67d726d85d6180600bd8b76e7fdac1 *f67724ad039c58b72f2559081c60bbdd8a8267021f66c0673a9389641ed51c8ac772b9ed4b077f *73a990129bd3885b9d4c05ce95926a5bf404eef342c20aac9243cc6e60fbabc0a1d088f66aedb0 *1038d0f625ed0eb0fd6be0ab9d7329b30c711691f5e52be077c0fb86fac18be2ff0ac18ec9c4cb *82dd606c9f4b08c36b7a63d747815d6d5f1431b6450817cc6452398aa5eba57783c7803d6d3f39 *d40f870cd6ce2becd1e951c1be0a98426855d5446e01de603b2aecb038847c17e94d84cbf20c61 *1b263346286aedec0adcdda5299f00de6efb8ee12e1836b3c6e654b2608fc800c18e5905d682ed *f984a2579fa039dd4d9e2314bad9cef60329868a5e92db515d91a6d17800780b701c690d20320d *c3f623841af3b77478aa7b8137db1e71253fe2618ccda9c5a163d926b15301a4de3e74544b1308 *a15ba31db8b680571256ad8dc7f662e0244997128accec477d07733f06a617754d2ac1f65f25bd *955067fd483af7de2e073e50347f40d2af886fdb946920b6ff22e95f093594a68d767d0417001f *1e6eeb6320a3e6acdbcc262e76b96757d86a695bb5740a2176f76ec23ee848af3be811a11e88ed *dfda9e4ab821cda07b4d5f17122a1b6e637bf72a85ba1fdb4fd9fe18b019a13e43558b86c584ad *af2d6cefd92fd40531a509320dc7f6b3b60f2684e0feae22b3b7013b17ede446156a6873c56133 *bb5861972d193895b0175379a24aa7504b0712d7f9bc6729b61e8e95f4054291f43d815da8a02a *dd20ee24947b3c63b4d8e9aab07d17b097a4b5089fc7f71256bf65dedb4384f4f239c095b687db *133f87f20948cf0df3fd1f11160b65f9af88314d9afbff139e54cb32bf82b947c4f615927e4af8 *0c1d4dd84e2c53a469017015f00ddb37949d5f651a384b7c94f2826d60079bd2ce751bb53409b8 *87b84cb82ab8c07d2edba9a62314f50f762164ee6d56bc466bfa3b90c5c06f094f1d37116247ef *afdacf18248d2774b0ee7f4fab022f25fce13d5ebc9e28febd37b1916ea626247d99709650968f *d83ebd0dfb6b01ef20b4957b3de1b3b40ae173b4a078dd0ffc9a70139a3b38d1a50ca5f6f26c4e *2956d827971826c24aadf1624d684d569750378aa2ddd565c50b00496b13ca8aae4af850f6bf16 *13fa193e5dfcfb27e0cee244bd71d85e44a82792525324b38c63fb61e0dce2d5714a1fbcd8cc52 *386e2b23d8b19d3cba4ddde52e1b1d4d60fb21e2cb9166329904a28a62dbcc023e5e6248af8875 *dd8fbb7554e7cb64323d407407039b93695fb0bb15589e4add623db7e6f933994c43496937d32f *d8c78c72d91c42e1ee5ee02aeadbc7fca6fba252ac3399cc3240925803d8cc040e64e814dfc780 *03edde2820e43e3f0c6c4f885ee8267703c77679ce4c26d3435492d96573bec48584f8c3698450 *95eb81b97663529adbc27d7e522ded42786298423874ec44538617806b095b1fd7b8cfc3c5db66 *32994c7569b845d1ff0b19d033ac572984f32b75fb91c96432fd246f836432994ca6f364b1ce64 *32991e208b752693c9f40059ac33994ca607c8629dc964323d4016eb4c2693e901b2586732994c *0f90c53a93c9647a802cd6994c26d303fc2f0865705467b1e0d70000000049454e44ae426082 hunk ./index.html 16 -
-
-
hunk ./names.html 16
-
+
hunk ./names.html 20
-
-
hunk ./repository.html 16
-
+
hunk ./repository.html 20
-
-
hunk ./index.html 32
-