Centos-kernel-stream-9/include/linux/hdmi.h

454 lines
13 KiB
C
Raw Permalink Normal View History

/*
* Copyright (C) 2012 Avionic Design GmbH
*
* 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, sub license,
* 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 above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial portions
* of the Software.
*
* 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 NON-INFRINGEMENT. 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.
*/
#ifndef __LINUX_HDMI_H_
#define __LINUX_HDMI_H_
#include <linux/types.h>
#include <linux/device.h>
enum hdmi_packet_type {
HDMI_PACKET_TYPE_NULL = 0x00,
HDMI_PACKET_TYPE_AUDIO_CLOCK_REGEN = 0x01,
HDMI_PACKET_TYPE_AUDIO_SAMPLE = 0x02,
HDMI_PACKET_TYPE_GENERAL_CONTROL = 0x03,
HDMI_PACKET_TYPE_ACP = 0x04,
HDMI_PACKET_TYPE_ISRC1 = 0x05,
HDMI_PACKET_TYPE_ISRC2 = 0x06,
HDMI_PACKET_TYPE_ONE_BIT_AUDIO_SAMPLE = 0x07,
HDMI_PACKET_TYPE_DST_AUDIO = 0x08,
HDMI_PACKET_TYPE_HBR_AUDIO_STREAM = 0x09,
HDMI_PACKET_TYPE_GAMUT_METADATA = 0x0a,
/* + enum hdmi_infoframe_type */
};
enum hdmi_infoframe_type {
HDMI_INFOFRAME_TYPE_VENDOR = 0x81,
HDMI_INFOFRAME_TYPE_AVI = 0x82,
HDMI_INFOFRAME_TYPE_SPD = 0x83,
HDMI_INFOFRAME_TYPE_AUDIO = 0x84,
HDMI_INFOFRAME_TYPE_DRM = 0x87,
};
#define HDMI_IEEE_OUI 0x000c03
#define HDMI_FORUM_IEEE_OUI 0xc45dd8
#define HDMI_INFOFRAME_HEADER_SIZE 4
#define HDMI_AVI_INFOFRAME_SIZE 13
#define HDMI_SPD_INFOFRAME_SIZE 25
#define HDMI_AUDIO_INFOFRAME_SIZE 10
#define HDMI_DRM_INFOFRAME_SIZE 26
#define HDMI_VENDOR_INFOFRAME_SIZE 4
Merge DRM changes from upstream v6.11..v6.12 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v6.12 RHEL-53570 JIRA: https://issues.redhat.com/browse/RHEL-53570 Conflicts: Conflict resolution: diff --cc drivers/gpu/drm/amd/amdkfd/kfd_svm.c index a6b5ab89b7ca1,1893c27746a52..db88bfc044b5b --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c @@@ -2677,15 -2727,13 +2727,16 @@@ svm_range_get_range_boundaries(struct k return -EFAULT; } - *is_heap_stack = vma_is_initial_heap(vma) || vma_is_initial_stack(vma); + *is_heap_stack = (vma->vm_start <= vma->vm_mm->brk && + vma->vm_end >= vma->vm_mm->start_brk) || + (vma->vm_start <= vma->vm_mm->start_stack && + vma->vm_end >= vma->vm_mm->start_stack); start_limit = max(vma->vm_start >> PAGE_SHIFT, - (unsigned long)ALIGN_DOWN(addr, 2UL << 8)); + (unsigned long)ALIGN_DOWN(addr, 1UL << p->svms.default_granularity)); end_limit = min(vma->vm_end >> PAGE_SHIFT, - (unsigned long)ALIGN(addr + 1, 2UL << 8)); + (unsigned long)ALIGN(addr + 1, 1UL << p->svms.default_granularity)); + /* First range that starts after the fault address */ node = interval_tree_iter_first(&p->svms.objects, addr + 1, ULONG_MAX); if (node) { diff --cc drivers/gpu/drm/panel/panel-sitronix-st7701.c index a69e861eb1130,eef03d04e0cd2..56a4041f5ef5c --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c @@@ -12,8 -13,9 +13,9 @@@ #include <linux/gpio/consumer.h> #include <linux/delay.h> #include <linux/module.h> -#include <linux/of.h> +#include <linux/of_device.h> #include <linux/regulator/consumer.h> + #include <linux/spi/spi.h> #include <video/mipi_display.h> Commit list: commit 9fc97277eb2d17492de636b68cf7d2f5c4f15c1b commit 7c0389c615b5c6aef1b0e38e30db759b3cbff885 commit 627c961d672d3304564455ba471f5e4405170eec commit 8169b2097d88d99d7e4a72e20e4b549efe9eb8d7 commit 67d90d679eb3447f73e2a1fe55f7e6c6a44c9fa1 commit 2e524668c440104633af1effcc85d1d6234c7ccf commit 96e7ebb220f8a873321cfc5a87bc4533d36ec444 commit e8babb280b5ef904df54b3a90e5a7e3a9600c4a9 commit 282e6f846d8c3fcf36293f68f38d814645c3b852 commit a708f6501c692551e3d4ea618c44021f436730d9 commit 04e9c0ce19ac68afd8be7fd54772db3b0356cf75 commit 9dae9751c7b0086963f5cbb82424b5e4cf58f123 commit 466a6c3855cf00653c14a92a6e9f8ae50077b77d commit 3078d9c8b6a0939bc732fd1c36ef86c0178127dd commit 01570b446939c3538b1aa3d059837f49fa14a3ae commit c55f79f317ab428ae6d005965bc07e37496f209f commit 01e0cfc994be484ddcb9e121e353e51d8bb837c0 commit f3a47a269119ade7ea22d0465c7fbe518ca1bdfc commit 74e3076800067c6dc0dcff5b75344cec064c20eb commit caaf1f44a6a27bae33eee189842c4d8fc21c3b02 commit f592e01664b4a57b109fcf6f6916145517f94bd7 commit 6be74ddd0609959b4005f88b6a4d4af678e4a71f commit 9c62fb62c9f0761eeda8f2a9517e007ff2cdbe9a commit 8e9bf0fb10a79aaed37474600948cd33d14aa606 commit 4c44f89c5daee9540cb7428de5d835bd00951350 commit da966b82bf3d16f89a05732c933a589ec798d3f7 commit 10efe34dae798c652053d4363871914c478f1475 commit 3756310e9fe1e0182adac89cedaa98c0eea66675 commit 1dcfca093be9e013a53e3c9b74b3f60ea9c5160e commit 014e597d35816b56c7aac1348b77c73657c4066e commit c4ce398cf18ae2859cc9930a9486b576ce262de9 commit 533ca79cd9f734aae56814445e3f1e6cc1a50358 commit 56ab6986992ba143aee0bda33e15a764343e271d commit 3d122660dc70029d9cccb4e8670125f0affa959e commit 7b5bdae7740eb6a3d09f9cd4e4b07362a15b86b3 commit b2013783c4458a1fe8b25c0b249d2e878bcf6999 commit ea74bf9ccba9ae80fc0766c07c4abaef927e9e63 commit 7fbad577c82c5dd6db7217855c26f51554e53d85 commit 33891539f9d6f245e93a76e3fb5791338180374f commit 24179ff9a2e4524ce83014b8827a73ad03a25c13 commit 7f58ebaccb67cb22b2936ba79c844f1e446dc73b commit a16b680a2140e6cbda41ac144564696c3ee2815f commit e4bd1db1c1f771983393bf5574854dff26ca7532 commit 0e7f4e6a20d550252c4f355d5a303b1d9c8ff052 commit 76299a557f36d624ca32500173ad7856e1ad93c0 commit 9d8c094ddab05db88d183ba82e23be807848cad8 commit 71733b8d7f50b61403f940c6c9745fb3a9b98dcb commit 993d36ac99efeafeb7b5f12353def6d7d20d6389 commit 0daf44ea9dccfcdb1fe694e9ea85497b6cc3a065 commit a4d5ce61765c08ab364aa4b327f6739b646e6cfa commit 211ad49cf8ccfdc798a719b4d1e000d0a8a9e588 commit 4613aa66e42ba1b0c896495a207b3b26e94e44d5 commit 61fe488fc78a3024b8d4cafc90a34158f4562dae commit f6ca930d974e473fd608fc9aa1759fbe731fe44d commit bd85e00fa489f5374c2bad0eac15842d2ec68045 commit 57c2b3e684ba3e82e9944bc1975e047bd1630537 commit d6e850acc716d0fad756f09488d198db2077141e commit ff10c99ab1e644fed578dce13e94e372d2c688c3 commit 0237368193e897aadeea9801126c101e33047354 commit e97701a069612ba2fa1d92b56a720b108049df4e commit 3b0974d7b74a908d1caa27f05a97551943e1bffe commit 09af6037128c101c280c95c56d970ce8475506c2 commit bc34d310b578952d37b5200a7fa7475ab2a2bd5e commit fd5a9b950ea8ba2c08ce07418b36b296a04d712b commit 6c9ee258b1f4e7021224c9bf541fe6b17a03ee40 commit a5beee65241d25ad20dd814668c975ba13a42615 commit da9bbdb97469383a2ac97435a3b09543d14139fe commit 4c46e34e67587b268abc3916c9613426018561e6 commit 94900000380300b230dc1bed489b598a2a2c55a1 commit 6a1738b3fdd92d48e61de438d05dedbc00fc598f commit 566ad72ba636b745beb8a440bd4c05e779b95728 commit 4290eaa8424905dcee4daa0666ec841dc3a0bfb3 commit f89d7664c3617836aecd291c56c8ab63fe228fbd commit 4d722029930bca7f53d99dbfc300a40dc297dee6 commit d43caea1faf5c31dc02aa1adb8bb1aa1c33bf86f commit 43a6faa6d9b5e9139758200a79fe9c8f4aaa0c8d commit 6f1cacf4eba7a3203f08954a7e00b744e43f741c commit 4c3fe5eae46b92e2fd961b19f7779608352e5368 commit 86c5b70a9c0c3f05f7002ef8b789460c96b54e27 commit cd3a2e8b0a0367c636cd82efaf7802cf85ae5dad commit 7bb97cf915884956311352eae3f444eaaae48cea commit 3ac9384061b250ee40eda5facff10b85e2d5d3d8 commit 45d30c828c613441bfbe5c97ca766854152b7181 commit a237f217bad50c381773da5b00442710d1449098 commit e1a261ba599eec97e1c5c7760d5c3698fc24e6a6 commit e02cea83d32d3a616c9ef8b6b50a83444a6bbcbf commit 7dbe8af13c189f5937e87e9fb924d5bbc49e6f71 commit 452bca0edbd0764ca0284239d5438b3edd305ab3 commit 108c972a11c5f6e37be58207460d9bcac06698db commit 54f07cfc016226c3959e0b3b7ed306124d986ce4 commit 8d79acd567db183e675cccc6cc737d2959e2a2d9 commit 2b808d6b2919cb2fe92901e5087da7b4ed4b9e07 commit 523f191cc0c728a02a7e5fd0ec26526c41f399ef commit 8a92e2a67f627e69dd52aa9c2d3176be13aef2cc commit 3849c6ff3a1517e4c8a6d004d9cb31241c849713 commit 775d0adc01a55fe0458139330415d86bb3533efe commit 275aa53f59df769802f28a0a623019aadab2e05d commit bc657615e10ddd7637dcc05811194ad7e2baea33 commit 99e0fb8b087120b5a7019f1cff6c5c2b5b925ae5 commit 0fde907da2d5fd4da68845e96c6842497159c858 commit 5e4e1ed6b87b6b3a3531cd8b5cfa9c3b09d841b2 commit 104bcfae57d80c484185c012cc0ee8d8d5889a7e commit e4a0251d36fc6c190c545aa95702eec0efe05a4f commit 7108b4a589cd6d3a2c1276fd610b3500f46de66a commit 0c977ff2b807aa53f655f095b0a306f18d8cf7be commit 3d0c4a62cc553c6ffde4cb11620eba991e770665 commit ce8c161cbad43f4056451e541f7ae3471d0cca12 commit a2387e69493df3de706f14e4573ee123d23d5d34 commit 2149ded63079449b8dddf9da38392632f155e6b5 commit 754c9129b9494b2b058add1d1a627fb3c9466a03 commit b345b3542d66fea49bff53288d347ccb06fa1b3a commit e8f834b559621d634a939381caf99a024e272211 commit d6460bd52c27fde97d6a73e3d9c7a8d747fbaa3e commit 5cd522b5331b348302fe410dab1cd070e4fd6998 commit ad16682db18f4414e53bba1ce0db75b08bdc4dff commit 89c6ea2006e2d39b125848fb0195c08fa0b354be commit d5070c9b29440c270b534bbacd636b8fa558e82b commit 9f774c42a908affba615bbed7463dd4f904dd5f1 commit c2c2a91f3868515969a758042887fdc722216525 commit 3a9b77cee7502f7450c725d4ead2c4a44924d158 commit 7e33fc2ff6754b5ff39b11297f713cd0841d9962 commit a522b285c6b4b611406d59612a8d7241714d2e31 commit 61ac035361ae555ee5a17a7667fe96afdde3d59a commit 0a382f9bc5dc4744a33970a5ed4df8f9c702ee9e commit d930c19fdff3109e97b610fa10943b7602efcabd commit be1dcdffa8fadc22ad272f605a53e2a2fd30e7f8 commit 2885d283cce544cf3619f35f0acb3d073de036e1 commit ec92c47d7d098e85eae7fb25c6bc07158686e675 commit f6f22012e6c73867b959524604984ee5ebfd105f commit bd40536ae33911bc74df5ba3b29b573dcb72f904 commit 8bfab7cd8335b10bad92e44f58c5a038762bcbc3 commit e17eedf56ea7afacd919a3d6cc75a617cddd003a commit 8f3d86f13eb2b37d86fc48df8995dffd9b7d9010 commit 37db1e776285518a7e1269b868d094a4532b2d54 commit 57ecead343e724b6ea38e9c2d8f794b293cf2951 commit cf1e6edbd1c8ba654f97071ccb748d87ef0115aa commit 9790bbe3ba48b659c0152f49552f6abc18f85bc8 commit 25ec7e809cc1fe9f01a71199d29092f6f1b4611c commit bc3ca4d94369838c3b6668a183467d4a69a5a482 commit f00bfaca704ca1a2c4e31501a0a7d4ee434e73a7 commit 7e0fe233aa0849de8a0a5e60cb0d71dfb359664f commit d4b9b6da5777bb03f36f01bb6b05c6cc303ededb commit b26d9dddad7bca6727069f6a26b265d303c65c49 commit bf32a3a1268638442ac43b347e4a4a09044dccea commit d5e79eeba3086a52593b295ac4bf6eddd64d4aad commit 9c27f613d55f8ffeb3f250d9d34e41edca3df3b5 commit 649b93dbb902ae3237fddbe998eb1f4de1a14b71 commit c8a31ff6199f12ca65d73f1235117c1d9e6365a9 commit 8af13c3fc1259c1b8cfc4459d3701fcf41ad74df commit 1fb4dceeedc5f0d1d062ddc44c4a426e1639e387 commit 19cc4b7d75b52df2b4fbb76428a6b0dda3d248bc commit f763c3b543d80ebcb94dd19a69324bf2b72b23ab commit 08bed7e4ff24f90e200defcd2c23e70b0a3cd710 commit 43796955a89572c63f7f96e271a2849c27d18f2d commit 00bb3223bf7cfed3c9c714e994cbd454cc3e6b73 commit 1eba165aa40c79f65f487678c8ea8e77b1c6a5a4 commit ccb54d7d91d256485cfe5403a12abb0175ce4539 commit 0f1a93704a5cf53ce819a7c544125442666d61ce commit e84f798a93881062cd14ce316a68068edd50bfb4 commit b68417613d4134b9e39fff95e72ca726268b47db commit 4ccc8fdcca670edd76d8bfd6389f04c448cff6f6 commit 5f30ee493044e9ea3a46167e5597a96f5c302adb commit 0961367cb5208850a123d235d147f92f586b2491 commit 98579743c4561acc3b1c7d2f3fcd46b2160db5ba commit e8d77cfdd2698039667432b8569bac34d13508c1 commit bc2fe69f16c7122b5dabc294aa2d6065d8da2169 commit 3c9154310af71802de2f40c5689b66009a407f37 commit 5fc77c26970d443f1c020ee8a5d475ad6b81e15f commit c83ecc0bee94995117329fccbfa6e8b43ce56044 commit 218784049f4b90834dd7b854857df0b7e0f76567 commit f5c783868855bbecfc4311050dbaca4cb28ada5e commit b3c9c9affd71f1f9b136534d6f56f392edb78620 commit c18fa08e6fd8952e88fa9ad108371c2bd5b82564 commit d94df7cad26b4c5958fbfa550d65794c89aa90ba commit f60881ca126cf825b89b4118e93dbd82ea9bcf33 commit b995c0a6de6c74656a0c39cd57a0626351b13e3c commit 367cd9ceba1933b63bc1d87d967baf6d9fd241d2 commit 3718a619a8c0a53152e76bb6769b6c414e1e83f4 commit 5559598742fb4538e4c51c48ef70563c49c2af23 commit 1ff12bcd7deaeed25efb5120433c6a45dd5504a8 commit 35ff747c86767937ee1e0ca987545b7eed7a0810 commit 892abca6877a96c9123bb1c010cafccdf8ca1b75 commit 906fd46a65383cd639e5eec72a047efc33045d86 commit 5d2c102deff63ff8980dfa848ee41858d255c291 commit 2563391e57b5a9c1d83fd36c05ac4cbafeb5efe6 commit 5ed9481db74740fd33ec4079b29db88e8c9f4a1c commit f91a9af09dea850d83d4b217b8acbafd97b5c61f commit 39d496d4721ba509647a70041f38d82b03c74680 commit 4e8eac98046446d99cbbed740f0767204b839f3f commit a41d58fb91248557438de4e8298d1d2ed5b39564 commit f82200703434522f1b35d38bdef02486d22b2f25 commit 9932ca4c03c8181601f611dd366fceb765329800 commit 0beca868cde8742240cd0038141c30482d2b7eb8 commit be1fb44389ca3038ad2430dac4234669bc177ee3 commit fdd5ecbbff751c3b9061d8ebb08e5c96119915b4 commit 6d64d39486197083497a01b39e23f2f8474b35d3 commit 323b19f424486e61784e8797a8bfb2e24585e162 commit b8d3782da396215615c3d125f0829d1d06ad2c97 commit 08cbe68d4aafcf651a86730a485df53e6ee9f594 commit be7a6a5171649c39f79a6259518218351082bd99 commit acce1eb8eb5de360fd82fd900454ff180912d8b1 commit 748b3c4ca0bf43cec186ace2ecb33457d7a4653d commit f59549c7e705be0087d08bc116ccc767b86d8362 commit 48eba83018c14ba6c102f5801d31c398807535d9 commit 6b0a9bf72c04cd8d2864fccce42817c24b060aec commit 2d67c4b54909982d462bfe227279d1499b329545 commit 60a9472cf0a8568f32be6cbbd32ee7759bffe215 commit 90985660ba488cd3428706e7d53d6c9cdbbf3101 commit 78dd6a8d33a3363fb4196e173be0eb4002962798 commit a6e23bec8ed184ed2a11080b28cdbd7a3024f0c0 commit fb1b5e1dd53fc834e12f69749cbc8484382599c4 commit a9ed2f052c5c14e4be58c5ec8794dffc87588123 commit 27cdf8c3cae2ad1dbfe1a32ff999c98349366862 commit 56631dee2932dbc203f0abd1011aa9d3d621e206 commit a7e8467fbeee654e390aad1736291d273b407a2c commit 7a38efeee6b59d0984ff0470d234a06fe6a7cf3c commit ca82ee4e9fc1443f9ceec615918b299766432eec commit f2ac52634963fc38e4935e11077b6f7854e5d700 commit 4df9e2200fb8ae7199e46eaffeb9430bc0ba3ea7 commit 666f14cab21b17ccc1bdfe1e82458aa429b3b7e0 commit 93381e6b61804b777f60357d96d6254eb10b9b56 commit abf839f5ebd98134f51764f2a2841faa6cbf268a commit 80237bfc031cd74cb8abf0d21094207284d56a48 commit fec5f8e8c6bcf83ed7a392801d7b44c5ecfc1e82 commit 585e3fdb36f59c5cfed0ae06c852dc1df22b1d60 commit 49cfaebe48e97500a68d5322a8194736b0a2c3cf commit caaf576292f8ccef5cdc0ac16e77b87dbf6e17ab commit f9e292cbba21e79abea7315b41a52c36ea2b6980 commit c86ad39140bbcb9dc75a10046c2221f657e8083b commit a11b36ba9c1ac494c6a5cf7f1a5e68c1ce4dbe18 commit db54a725d57985c869f6fe4153a36cd229ab0b73 commit fb91065851cd5f2735348c5f3eddeeca3d7c2973 commit 72dc6bf159467f43667bead6016965821186490b commit 3f7477bfbb906ec1cd9ad681475a04a142345eae commit 6fa4bf3dce0668a96faca0024e382f4489a9cc9b commit 332315885d3ccc6d8fe99700f3c2e4c24aa65ab7 commit 14d6ca0740e6237f4bca2dabee4e240b6f4be508 commit 0cf80506918da0d2cd9d31e3b07831f94a2c5cc6 commit 94beb4ac1b3bc5fbeef977960a90ee4f594b4465 commit aaa21e6a33bae017fc190bd75f76baa29d259346 commit f52ea01925f4eeb967c09cb5dae61608a2330541 commit f7543209ce5dc09e3f5a27a7d4ee53e226283719 commit fa53b23ff7c98930c7e529b8f5228d9f182ae2bc commit a90e1dc25c064bf21353cb342aac938662a148e4 commit ec0d7abbb0d464619d6d1646f03603c6616d966e commit fae1879dc229249c17e5fd4ef81bf33684ee58f0 commit 1a03b0e6c5fdb476203be4f4597205ff8799369b commit d925c04d974c657d10471c0c2dba3bc9c7d994ee commit 3237403b98e173c296ec83cbba5e9def331c5e13 commit 58ed441367b9b0fb48aa8cd471a73073d1143e16 commit 8732594017d32132ca741f4ec4eec91211f5d10c commit 779ea9d32612f8e78a2f362d52cf31c23ba878f0 commit c8a0222dedf90e9a79b88814e32ffb43ac4beef6 commit 0352e39e7e781fe6a408c70a336d0f321dfe108b commit bc50b614d59990747dd5aeced9ec22f9258991ff commit b7e99058eb2e86aabd7a10761e76cae33d22b49f commit bdf606810210e8e07a0cdf1af3c467291363b295 commit d81873f9e715b72d4f8d391c8eb243946f784dfc commit f22f4754aaa47d8c59f166ba3042182859e5dff7 commit ac2140449184a26eac99585b7f69814bd3ba8f2d commit 12fb3e9c88406732749fb2f111911a2438eeb0fc commit 7e60ecc2b70adb41b92752cbcd749040e00b57b8 commit 9c7e69d2e1245fdd5fa5c65cd022530b2a5ef1b7 commit 68e599db7a549f010a329515f3508d8a8c3467a4 commit cba7fec864172dadd953daefdd26e01742b71a6a commit 4b6377f0e96085cbec96eb7f0b282430ccdd3d75 commit eac3b274aaea11ec4ade8e8f684055db80d5f8b7 commit 22a9d5cbf88a92ac6cd473c3ba1c369aee8fec9a commit 834368eab36922595a402b9e76470f8efa2fac7f commit 8284951a6e79c6806c675e5f68a4cd425dd56bc4 commit c395fd47d1565bd67671f45cca281b3acc2c31ef commit 015b8a2fdf39a4c288ff24e7b715b8d9198e56dc commit a2737c404cb2c1c335db30737925a306a2e7cc11 commit f53f526f7050041718af84e33fc24f670e7dccdb commit af4808ac40dbf668183d0b69ef6b31e62e1fc5df commit 4b95cec68937a6302c7085b26258cf721d726684 commit 2662b7d9d8bc1dda1f89f0dd33422e069f2f861c commit 39879321769cc2d9a690725959ef76af92a38ac1 commit 48695573d2feaf42812c1ad54e01caff0d1c2d71 commit acddd5cf70e609e1e1e638ac0422977ea2b4783f commit a7909022371dc8c70bdc4871a97cc49e34d78a6d commit bc6c2a6f6495668e3cf0acbecf820b93ca03aef7 commit 5ebca62eb8ebff67e2c8c4903bdb4f3c07922114 commit 238352b4949bc5c724f6adc1c78d50f1d15e4759 commit bd4bea5ab2bda37ddb092a978218c4d9b46927e6 commit 61eec998c9399d1cce91c7a2f51a4d0cfbab97bb commit c60ca14bfd2d399a66f7164e044b63991c6a5a82 commit 708899133615bdb8087cafa129b8e24397d0c79d commit 2108cdcee58b06460a8ecb106d15ab69f5bd49fc commit 6482253e6e1ad1c3a76645a3899d3cfdb5b918cb commit 76a791fa0926e504f262310cbd0c8f1a60e67ae8 commit a2b4da9501c120d60413065169f140bc3d2e5991 commit 66ac3451fb467ce44fb1d4517f91db7390b9fa6b commit 7214da0ed2220a2b9ad22aa77a5974cdd2a62799 commit b46119578167150810184494b2a097c40e2144b8 commit b049504e211e8f4dbcd40434f2dcab2215ea1039 commit 305cd109b761202d71f2f655ea369fe889ba1d01 commit 3b37e2725ab32c9055bec00ef41caa63839efd37 commit 0b071245ddd98539d4f7493bdd188417fcf2d629 commit 08ae395ea22fb3d9b318c8bde28c0dfd2f5fa4d2 commit 47c0388b0589cb481c294dcb857d25a214c46eb3 commit 517fff221c1e6b8a8db69e7a440116caee120ff5 commit 629568d25fea8ece4f65073f039aeef4e240ab67 commit 1a394b4f504f33eac8c38b6f42ba025105c7e869 commit 31b42af516afa1e184d1a9f9dd4096c54044269a commit d34f4f058edf1235c103ca9c921dc54820d14d40 commit b4224f6bae3801d589f815672ec62800a1501b0d commit 3e307d6c28e7bc7d94b5699d0ed7fe07df6db094 commit 10ba3753665f77314cb475e1a4ad0785f4770c4b commit 83b501c1799a96a41e163973e88826253ffadfb3 commit 773884e39bb5a57f998af48b3948308568027a54 commit 93183c9959d456530ae502865586522acf21adf7 commit 3c8d2d5da3e29f73fec6e04a424e789422f697db commit d969b31afa439f71f810076a5612596dae38fd86 commit e814902866ed22bc07d2af1303f3183357a438e8 commit f4aa02c43969c36213a7fd4e56831693fc83ec4b commit 351a88713b6daae5435d683ddab1913a65d09eb2 commit 8155566a26b8d6c1dd914f06a0c652e4e2f2adf1 commit 17c6baff3d5f65c8da164137a58742541a060b2f commit 75c3f06fd900e01a68b8ade17e6b6be64cfdc9ff commit fdedd77b0eb31209c59107de66880ef0be21a77a commit f3c681f0c3b171db923d6147785064962351e043 commit 60c30ba7ba2064066ec462236666058cbbf619c1 commit e06b71b2313a00579ba64a1cc43ad29d64cb8d4c commit 8f28c465a455563917aa15bf5ef40016b2a665d6 commit 641a118c9d91e53bc920ec0ea2ea350d84eb7a9d commit be8f9f4c866f41b62a3df9a5cfd54e0e88fc3e3e commit 81e0a3d1063e388efcbbb4648e07479575ec85b4 commit 5e9209c3739454a08c4d770c649187b0f51dffc6 commit 9d8e91439fc3890de55eef2bcfde97470b7dc04d commit fd6797ec50c561f085bc94e3ee26f484a52af79e commit 0d5040e406d2c4404d26b841c4aa34cec0bf1088 commit 20d70de5823ee6b9d4e8b3db4c13123cee0358af commit 961ae5f9807bb15af0065485785725768a7269b9 commit 448359c1ce50a8e61842c39ffd52f399409a6860 commit c0bfe34330b5fafdbbc63a7124841711651b96b9 commit 6777264dfabe2a7c75453031bee5bcc2e7882cf7 commit ea94c8e217f9a845bf2c565b77c5eb078e975eae commit 2e408ad7a55273b55b14ce28f62111dc1c4f7fb6 commit ba6b8479c944c50db7e2a81794885896fa6c48a8 commit d075d99ef73bbeca878fe2cbf758f8524bb698d5 commit 8bc1ab4f615b200507b113d31ca614fa17b9772d commit b5bd7cf76b7cf8f2dfe36aec0e4916a2a95c8fbb commit 4a865f6a76ed1295d878029cf7a1797395b1aec0 commit b2d474d4c8fa9cf7d18dae3c0784c4a710e850ca commit ca6eef9b1c3486bedadad6a85d246b26df51c61d commit d6e44a8548b614fa9d6c77e0c12b929c2c791258 commit 455167e8751c7fc50e88496e6d5dfb896e2ab3dc commit ffe9f1bfb3e6709769779bc6c1a5b1d971b7b95d commit 7e0d8de4d35789b57eee8acb0a952b854edb37a1 commit a897f65b3a6175243e4878e2fd2e9b8f494710ec commit def122b64e37daa39774d4afa433ad42b8a5eaf3 commit c45c999cfb6716d40af9048ed0142e42a6235378 commit 246b228eb905c94663af435a1cd6cd31cc205ba0 commit fabc65d16337b6cee1cbbd1470bbb903f6daf3ea commit cced63c3dd23e061f0fca754a3aeb35b62b0a628 commit 216c3c4424bb42bd6e4ea75cfe0c22aa7dceda6a commit 8d7b2d3a7e3aa4fac309f9a496e6b237729d2b01 commit 6901f1d6479b6f81b537672cc16720b06b2ab3a5 commit c6bf82d426d8293d7257b9db368e025b1fd66454 commit 0fa0955acdb342bee3651bacfdce3d8927ab1025 commit 3019023ec9fb2bd7b0d2d82ce847ae2520f24c1b commit 5cca41ac70e5877383ed925bd017884c37edf09b commit 2eb58f22e2761b75e4f35847be03ddd425ae2b5e commit 3543e84e20fbd60e02264f757c77c7dbdfd1ee4a commit 034142a303fed2903957b06a7c91abdff5531bcf commit 0df26c0d69dce1141218e0e5ed0ad378a0c6c058 commit 723388bc0fb68f2487795796f4e616ea39cee99c commit 61671d85def2960bbf52db22e9e45b3bf8a5ceb5 commit f3392e662efdc095f10109f588aa4f3be86f7eb5 commit 50d10d9271f6c6542196c54275091c7b2c6edf97 commit 58d283801d06d4434df6625ed6e6b8d2ba47fe65 commit cd162ae9bc3ba91eb630a1321afd3d1dde5f2000 commit fbfb5f0342253d92c4e446588c428a9d90c3f610 commit 25dd25f86eca77b1ce4a611432f57b006fa91615 commit 8e4ed3cf1642df0c4456443d865cff61a9598aa8 commit 66d71a72539e173a9b00ca0b1852cbaa5f5bf1ad commit 7c5b344537a143d15385992e41a50a9c5125e93c commit f9e6759888866748f31b6b6c2142a481d587f51f commit 7fb363c57522b704e156fc4c5fbcb7ee133fe304 commit 17e68f89132b9ee4b144358b49e5df404b314181 commit 0e4b858285e633ea6bc7335fd66529955d023af9 commit 076362d931d0d5ed01a3d1cd4d066f2e6e7f86f8 commit fcb3a4fb8255149a73afeb3d8f2397eaac3a46b0 commit 680caca6feee720d0a6cb00f892c0d2d46dc4075 commit d5022deb4a526009fdc20e4d62528b25b05112dc commit 3f96f545f877ac59d0c967f52d760b4b2b3b9a47 commit 722e96c99f1d7532fdfbb557f50a399f6cc57d82 commit 58a8ee96f84d2c21abb85ad8c22d2bbdf59bd7a9 commit 739d0f3e1f36738d4cd84166784a8f7a58d69612 commit 9724b8494d3e85cb01c377f201bfaf25fd7d38ff commit 093b79d034c59a3b66f6312863502378a422496d commit 4981bd4749fa769b3d6acbc82fe8059c030d0920 commit df18a4de9e77ad92c472fd1eb0fb1255d52dd4cd commit bd870cfd21489d28195fda157710ebd4cecaa8ca commit cead9ac8b0992ae2659b637e86a0da7cfeb5e267 commit a15268787b79fd183dd526cc16bec9af4f4e49a1 commit 13d8850a3387635c051c5ed1c8a8b6c1e9bd1341 commit 608d886c978cd5f3d8650630568d96c231845227 commit aeb81b62c7fe4782198e9dd79c7d6cdf04d92586 commit c6bb3acf1cdeed5d01ebde70b769a8e25993965d commit b5126ba85beadfa1f3cfdc9e7a8533ad444ca210 commit c3f15273721f2ee60d32fc7d4f2c233a1eff47a8 commit 6eb1fe53ee94cffd7187844d08d46ba8659d667a commit 4067f4fa0423a89fb19a30b57231b384d77d2610 commit 31663521ede2edb622ee1b397ae3ac666d6351c5 commit c9bfc37f085aa180b3c49b9c95756b9ef032243e commit 0c3f3a83c7e8dfaaae4ba8a5b69bd6bc13340d0b commit 0e8655b4e852ef97655648b91ce780384a073ff4 commit a6ed988ecdffb2680a65f142acfe3271e6c04ab4 commit 6f4e43a2f771b737d991142ec4f6d4b7ff31fbb4 commit 7657d7c96657179d002817d5ec2a1d4c84f21cdb commit e525473fd5b7202ae751316799ed759bfaaf02bc commit 20c3a0241b5c15c0d64929cba04653d5556b7d5d commit d93a4fec186c106115d0b3165047dd06f2c1aaab commit 9eab82c38d0184289ffea56477daca8425758442 commit 6da8acfdb6e1aa72787efb733e3af9e9e0c57b9a commit d51a75ac975a6147a4dea2d68cef4566f5c2ecaf commit 1c408c516414fd9760c54f6d42ed1fa44a1dff15 commit dbcbfc72d3b660b6dd9ea7d2c089c228609714ec commit e4ac526c440af8aa94d2bdfe6066339dd93b4db2 commit 250ac9ee60dbb14cdf422ab7f2bc28d671ac9f46 commit eb53e5b933b9ff315087305b3dc931af3067d19c commit c91d75a3c6a2567e8c6b44f7337b6955596ffb86 commit cbacb1b74400299edea7e9bcd58bbc7c40dad8c1 commit 2281475168d2ab3fbd763c2fd762f99a411fa1b6 commit 2000ddac9b5ce5102ab1b194a1cf91e8af3017d5 commit 833cf12846aa19adf9b76bc79c40747726f3c0c1 commit f2881dfdaaa9ec873dbd383ef5512fc31e576cbb commit 7f7a2da3bf8bc0e0f6c239af495b7050056e889c commit 6f20fc09936e786a4ba18f5514fe185e0451ada9 commit 4c288f56030f380acb9572d88396ac15edfd30ed commit a755947e050b8751fc5402609a7d600e9c756fa7 commit e9b36c5be2e7fdef2cc933c1dac50bd81881e9b8 commit dbaeef363ea54f4c18112874b77503c72ba60fec commit 0cf09702a118b1c09b694862061913108565edd0 commit a64d5fe490cd92d74b1cf46da63164cefcc61a58 commit a3f91f405aa7c54d0856c1b8698e4ff05ae7d439 commit a4530e20faddcc4ef4e5939f186a8560c71a5e94 commit 634e1804242b0d5d64031199236fb3f337b5af3d commit 96c468c366dacc0e41e08ac53e20a5025f6ba967 commit aa705f7ec6e2423af87c20b30f0e26eafdfd4513 commit 8f1fe39ded725483a67c15014a1863179c783b38 commit 9d1f218ddce20329a01c46d7a1ea4d88fdb0fe86 commit e40fbf616610e33aba9597f278925b4ae8cc806c commit e44bc451aa4b08845c238028daafb4eaffb573a3 commit 5c7b393452b55ee0cdbced0d3bc798f6875b5c24 commit f1e6f89506e48b42235755fb3c2b73022697d8e5 commit 4da409ba6430e3b5c6da7879dbbdc5f6717d91b1 commit 6c9e14ee9f519ee605a3694fbfa4711284781d22 commit 688c43dd6ca9e0cd0568868aefca5b041695c3f4 commit bb99c51bdaa846bddb85a1e7acca3a3aa5e9f082 commit 3663e2c4bc45fcdc71931fcbfcbfbf9b71f55c83 commit d97e71e449373efbd2403f1d7a32d416599f32ac commit c0e0bde2c7e6bca2a1f195d82ef7598d521399e5 commit 146458645e505f5eac498759bcd865cf7c0dfd9a commit c3bc97d2f102ddd5a8341eeb2dbae2a3e98bb46a commit 53369581dc0c68a5700ed51e1660f44c4b2bb524 commit 4f04d07c0a94b0b30db839e44f1b8364a1b508ac commit b6b242d019ed23195c81cf00eb8290d386efb83f commit 717b432b6d55e1dcefcb5e2ec315bf66b6ab8c54 commit 21e97d3ca814ea59d5ddb6a734125bd006b66a60 commit 2009e808bc3e0df6d4d83e2271bc25ae63a4ac05 commit a4172af3040cdc207f1b60efffcdd219156093c9 commit da1878b61c8d480c361ba6a39ce8a31c80b65826 commit a99aff2608f422da833cd91fa1eff23daa05c0bd commit be1dec570b6f5a29ce9c99334c52bea94c28914b commit 8d5309b7f67571bc0c95d430f4722a99d38f3b79 commit 843f10ce6539cd5e4989415e18cb809f4cff8b91 commit fceff12e52985e49c464f402e11b2f97bce3cc24 commit 3196763851b5fb9f7c8c488e233e947292cd71a6 commit 8466a14173e5ff7c2a52d8700a13f4b841d0e17c commit ce9b1466f5a9a1b2acc80d29f12d69559fa97174 commit e60244554ca98e87ef731739f608eac54e478e9a commit 2796b7ceec95bd5a7069cd27af7e4cf01a692db4 commit 1de99ff7371bc6ce2187081bf5bfbbb4a7de28d7 commit 34d0472ce1087fbf8e2ba504a4625e4c74286c63 commit 60a2066c50058086510c91f404eb582029650970 commit 97b6784753da06d9d40232328efc5c5367e53417 commit 54bf0af90844fbf18f5be3272eda69198dfdb622 commit 92653f2a572505adaf7f13f695c1907e71a1dc84 commit 7c5537cee9a8dff956e3b9a3f68c22af06a57558 commit 7b6cf6c750da7661a90c12642c3a8f141c7c2819 commit 68914b7c4dae0fd59ccb6b8bd8e2b6f5656cd25d commit 0b8778af8babe55f133b9bfe3a5bf234a36ad7f8 commit 75830999587470b17a30d2ecad25ad13cb272c19 commit d7683c49638c83bcb6a817671bb348dc435da3b5 commit a0ac33cb9a12f1e499c9f009067a3135df626cd5 commit 16c9898ac5ab00fc96efee404a1b8bcfe20ad48b commit 9a72570491b524c9dc4c1caa7323b2297c27b0b7 commit ca0fb243c3bb53dbbd71d16c76f319bf923ee3d4 commit 9330af0af3d54df71b6b752a260dadef05a4fc44 commit 29d0732f8f61ed028d642034e5323b8cdf6a1905 commit 85ecfdda063b6f148335c354c8b7200a49640510 commit 5d6a620875a04e70c51d8366eccae74d9cef0308 commit 6cc213b9aa34bc3213e20f9256345c5cc1495b0b commit c7b3569b3ebc53e997500be09eb612b6c852525a commit ab799c16c9d537fa2f070283f1ca63a4425502e9 commit 675d9ac9d0de765531e94f9fdc536989a997a324 commit 24ffa5bb6d363c8164be6af974e318f5752797e1 commit a00a177055cced5cd2bb057a1ace9a95a286bc49 commit 74bad61c5d83f5af8a855c8b7dc8e20377c74d46 commit d91f93c7a7fb9589e62814c1e229943e1259b48c commit 946e2c5be80b2cf93be34e28b3a6bdadc8ca419b commit 3e048c8846a658098d935df83050170c8a8fb104 commit 1cb62da0802c8f08e26443a5409edba99b8a1f6e commit 8141f21b941710ecebe49220b69822cab3abd23d commit 9710b84e2a6afde2db20cd33435038eb75b91200 commit 17277da26623d4aa8bdda628d0024cf2f2e39ae6 commit 836af5be1b6d8e93d736c252e711a20db7dbde9d commit 4a4c815b08dc774dde67fb90a0286925f98204af commit e89d2fec4cde967445e16e02e406481bac380cc4 commit ee0a469cf9175aeb6131c0476c4a4a8eb5997dfa commit 67c4ca9f794951482c54a7006c8b3c367d6c3efc commit b41a382932263b2951bc9e83a22168d579a94865 commit 847e387e00547b0cc728a5e61f5beb2ff861ed1d commit 62eefd10ac1c7e976bda47ff311bd87cee40ab8d commit 62ed6f0f198da04e884062264df308277628004f commit dd340acd42c24a3f28dd22fae6bf38662334264c commit 28574b08c70e56d34d6f6379326a860b96749051 commit f59902ffcc43ce7e1db5d0c4dfee37ec2a1bae0c commit dfe9d047b162f3a79ab63046608c693ee14c5b7a commit bb670c31e13a402d30afa3d484403196031d0fbd commit dee44a7cb577f2aba39e1713a51e9faee2f65534 commit fd69ef05029f9beb7b031ef96e7a36970806a670 commit 62341f7bc2ccb7c024eb023a05714d798ba6437d commit 0964fbd59e7131c1bad4c8549ec13a27104f0b11 commit 0345c8bc22c92f3d5fc0287957a96fd214297aa4 commit e9180253e22596991db426ab5b01111c2a739db4 commit 4f842ba7cdd83cba1d5c0bbd15ed9d14d882cf89 commit e1dbe625d6ac2821eb29e087db46cb539d8079f0 commit 507293b1b207e419fc7ea4ff1d72c2f1db18e33c commit 64a905203fd0da3e8a3f649593cc48c9fbab25d0 commit 792be2e23ac69821db7860ba4ba94592101f0b07 commit eaf3adb8faab611ba57594fa915893fc93a7788c commit c9875d0a789060facc274dee0d4eb6500d471772 commit 671af06690e7f79db51b475a35c3b2619f345abc commit 434967aadbbbe3ad9103cc29e9a327de20fdba01 commit 65f6e9f7e1319119096a6dc93e62894e4375b578 commit dd3e296289346109d41c6317124f51aee0269c25 commit b3a3c9a6b27b68310f1d4d486f47556808c7c855 commit 5aacf8917fde5bc2a640f3cd49130c0e2e85e726 commit 7b2363e06c0ff4b868e7d768d605a9e656ff61f3 commit 51d334d6a49629ea03a2dde562d46846eb7d07a0 commit b8dc6ca028d9a39196a3a066b9ef2d4a5eca475d commit be64336307a6c3ee71fe1337c1b9f0495aa83c50 commit 78c508a1c162c90c48e12faa62bdab8b90e6f17c commit 41cb5a5e8480fa41ee452ee60e620a4c1de3c323 commit 8151a6c13111b465dbabe07c19f572f7cbd16fef commit 329ee7087bc9862977fb6e431b8b0ea5e7e261b0 commit 00f06855f6e68954f67616cd5560fca25c755eba commit e80f8f491df873ea2e07c941c747831234814612 commit a0fcd3df4591043d447bb08919eed2ce68fbdb5b commit 130376ab8300ef06231ebac4db147f06d601d53c commit 86598c3819fdc70e59d28221bfa7bc36e9f5777e commit 57b09a168ffe88a4c088e8f7ca5de2ffbb8fefa3 commit c0277b9d7c2ee9ee5dbc948548984f0fbb861301 commit 92549780e32718d64a6d08bbbb3c6fffecb541c7 commit ecabb5e6ce54711c28706fc794d77adb3ecd0605 commit 4eb0aab6e4434ada240286d934651dfdb2e08301 commit 9cc033e07d025dee1fac178c20ba96c56f8d9a91 commit dae5d79a3bcc3101e1e02a1c2999ca74d1efde05 commit b62ef7e4021f74bb12445987efd8109ccca289c4 commit e102b5ed6e283a144793cab8fcd95f61d0ddbadb commit a225800f322a3d6cc8b8b6c7dc4d5281f2f5375b commit 1da86618bdce301d23e89ecce92161f9d3b3c5e7 commit 0829b5bcdd3ba077c408e71e22ac2bfa85bf2c95 commit 17419a5c8c75e1f9de01b094f763ec1c6ad02979 commit cecab0bb737fb74813733f2472761fc3a93857b1 commit b7b930d104c38a545d862896759863d649be8252 commit 6600c55ba0d46c6f2f74eaa6ddfe2b66cb8df852 commit b635066c2e0fcf74428b0864c249c1dbcaa4b5bc commit 94a438a7595bb5a7a2efb94de2dc818845254e4f commit 372f244b01784b5ee233cdfd732b4c1929ddd71e commit 91dae758bdb854367bf0811d97acb84e791764d9 commit 636cdf6fbddff4780ff4452a82afb099292b88b1 commit e422c0bfd9e47e399e86bcc483f49d8b54064fc2 commit f5510726608fa035bdd2f1fc167cf4a0f7bee22b commit dc06efbb7934405461d95bba5b702849058424a4 commit 9d09cac47de5358ace64dddd14278fea002e68c3 commit 0f9ff361ad823b887cfb09dd78ecc8f25d32ecfa commit 219b45d023ed0902b05c5902a4f31c2c38bcf68c commit 5bdacb0907c1f531995b6ba47b832ac3a0182ae9 commit 4e996697a443a214887ef81b008c344d183b5659 commit a857add73e61277fb8f688234c9d383130313ea7 commit 89121e5d0857bbf41f1987c3c6019f4f318aec4c commit 2eb20b96d7696dc354e1b38c511418b56291013c commit 549dd786b61cd3db903f5d94d07fc5a89ccdbeb9 commit a86ee96ce819800a399e0260c5ffad793c9c6ac3 commit fc33077765e9104f84b49d9b9e0702a41d5269d6 commit 17d6abcbf6249b4ef22f41b255de2be2691ec32e commit 885c31382509d13fd70f6a9c42637eb72056a6ce commit d79fdaef2b55deea0df3fc6af4d4ac60e81a527c commit 08b5a4798713f4331317272752b27b1c4f6a246d commit 7d113cce5fe92c8bf0a2e2f19f71762a845e9d9e commit cae39e60abb10ba1e8cc095b7d5567edc9005f03 commit 6d470f9b8cd3e88d097b332bab3e7231f2fb3dad commit d27a14060f8501e556a65b346b2644be0d0a2de8 commit 969135862e731620b9e03bb0c21179ff1cccfd0e commit 5d45c01dea6f9e0f2dbed3ffee02ac2e80579ad4 commit 0dc4fb69eb14320ea0fcd9657b7748eec201ccaa commit f7303ab29d08a551975aecb4bc6851ac3445abf4 commit b7f317e62968979343a4677ffd5bd91dd3edc204 commit 769b081c18b916e362a2b623d7c28ce761c3165c commit 9aec6f76a28cd669aa98403883edda3a7981fef0 commit 5c61f59824b5e46516ea5d0543ad7a8871567416 commit b9396b49879b6e3d9069586e39432b2203de0a7a commit acc4e41ec41fa28ae9fbdb1a2750525a7a242743 commit 39fa14e5bdd037f50df0af408da7251e400b41fd commit 21ff3a16e92e2fa4f906a61d148aca1423c58298 commit 1da91ea87aefe2c25b68c9f96947a9271ba6325d commit db639278e6217173c21bf8bd52eff2e9a0d6919e commit b8cdc47adf059f60a39555eeba1db92c503a5061 commit 50680d1698f4d4c9651822398805cb943b7c04aa commit ec0796e6446352e9e4ecb1804bf470d1ca47c5f9 commit d408d6f8cbbb5ad92b383f33d091f027f5740aea commit 844efaef48e846b5310b0e7af5e7578762eb7e8d commit 34e087e8920e635c62e2ed6a758b0cd27f836d13 commit 237193e21b29d4aa0617ffeea3d6f49e72999708 commit c3c5b79b6ed1d7ae7356b51f7c17bd88197bf405 commit 7a26f18119d1daf910cca58f875582d50d0e4974 commit db1aeaf2a1374fb05d82a1f8fef5cbb059ce6a01 commit a0634663d09abcda84eae37e9817490628a034c9 commit 17674d6603eab37a4f7b1cf5ba345d5a1e275fb7 commit 8df39400d0db29f84a72c891d1f526e3b61a332a commit 6c22aadbf6fd0240181eb4897308153c2aabec2a commit b5757a5be2fac24f5c138e8ddb3b2c7be8ba1cb3 commit 446d0f4849b101bfc35c0d00835c3e3a4804616d commit b7ecc44a1b0427d8c71fe2e2d46c4a8dd6e6f64d commit c6c2e8b6a427d4fecc7c36cffccb908185afcab2 commit 0cee47cde41e22712c034ae961076067d4ac13a0 commit 7b3a4e1d559e892ea563f46f45c504a60c82d70f commit 3834ce360067b4ee98fdef14571923500a0499a4 commit 9a12b1c7a0595736d398b24712dc1ce79072662e commit 8641b817392bfb12fb1e71ebb68c31783297bfbd commit 17d30ed33c8a9e7b866dd7c2ceb4a6858cfcaa81 commit 020620424b27bababf7f53d00692ab919c357a3f commit c6dbab46324b1742b50dc2fb5c1fee2c28129439 commit c30fb344a2f7fb5d553e98577185d9f8147598e2 commit 45a2a4514320f9c835eccb661601357cb1fefd82 commit 947c0808693e267185c5471f87f83146e4300561 commit a46a7bef7d41ee7787c246f47a656fbafe02f122 commit 3df34334147e73b05480db6cf8353a405597d04a commit c7d4355648ffa02a1551495b05c71ea6c884d29c commit 2f93ec07ab54cae66155d0a09182843f358da178 commit 434b3554d6435dc4e19083a2214dee40a88e09e1 commit 311f2b587461f86e3c30e7ac28df38be4a862ac7 commit 0fe20258b4989b9112b5e9470df33a0939403fd4 commit 596a4ec72876f1061f0ef4be47076b093f03b4f9 commit 782cef7fc367542ccc851d93edbed166defdfc27 commit c20da89edb69f05ab78fe804899d50be2596b0f0 commit 95d9e0803e51d5a24276b7643b244c7477daf463 commit 4af0d8ebf74ccbb60d33fdd410891283dd6cb109 commit 680458d41aa46a009909482f58358205b5c4b438 commit 8c4f9e466169b3e411947347fef09382c14e5733 commit ce4f9f79ff8cfc78a064c533f0aab563a5613d81 commit 1b686053c06ffb9f4524b288110cf2a831ff7a25 commit 66e2d2d9a59f896def82a1c8684368be45cf4c06 commit 07f4f9c00ec545dfa6251a44a09d2c48a76e7ee5 commit 98df5a7732e3b78bf8824d2938a8865a45cfc113 commit bd15f805cdc503ac229a14f5fe21db12e6e7f84a commit 9b7e697839c2745c10f63fe5fd54c9e328fa2e3b commit 70f83e7706e57200edb8ffa36883b2f43d214142 commit a1fc9f584c4aaf8bc1ebfa459fc57a3f26a290d8 commit 3bb41f2e9134906e0814766c07dfbdd9de0bfaf5 commit 027347d17a16562f3be272833243b835c21aa2a5 commit cd9e9e0852d501f169aa3bb34e4b413d2eb48c37 commit cc2991203c9d4e23051dbe5bcb1fc700fea26992 commit 67ea53a4bd9d03a85eecd99875a2a794c886f788 commit 7a1eb66809390d06b744aa13123b925b64b54c4c commit 24f483ba49c9acc1139a0b4cbfd1b122fbe1ed7f commit 5b7813bc6218100d7bbc6d3a1b582bfd64034bf4 commit d6ed53712f583423db61fbb802606759e023bf7b commit 12dbb3ed212fc7655fce421542a5add637f8af7a commit 5ac2557d75f94777076885b5119d3b6755e6761d commit 17b6527dcfb3249401e037734ed3fd0f4752572f commit be280fddfd645ea0ce4c7a26692c3d1115447e32 commit 1fd2cf090096af8a25bf85564341cfc21cec659d commit 8f9b23abbae5ffcd64856facd26a86b67195bc2f commit 267c5876c977d5f2d5a89f377d74adf42b5c38a5 commit bbec7cea6fa4a0463d4766ed0e6bb347773d3949 commit ef6c2cb349c708676b7820c36a5beb75868ad544 commit 61cffacb3a1c590b15c0e9ff987de02d293e0dd8 commit 42b3a6f12aa56dcf789464d29fdf11f33bf0e793 commit aa02486fb18cecbaca0c4fd393d1a03f1d4c3f9a commit 35c7152202e111968b10140383f49da9159d2704 commit f83cec3b3a7c968bbceb810b7acd1baf3fe8cd87 commit e69c2dd7534f3fcabf7bb801db2a7ac71e7e5da6 commit 9c081c11c62112f1c30ff2426f755279a43fa1a1 commit a85c3db6b3b088f63b5b8c4fd4352f56f0e4ce3d commit 9e823f307074c0f82b5f6044943b0086e3079bed commit b2dee0837a4be63e8d3e00550a9f057644f962c4 commit aa539da8aff07ab08def6490e8c9b441439e70ba commit ea5d6db17a8e3635ad91e8c53faa1fdc9570fbbb commit 98cae695a8ae0e4291b1fa7feef9b54fabefe885 commit f7fb9d677faf0460131bc2af15afd766d48a1f47 commit a7f670d5d8e77b092404ca8a35bb0f8f89ed3117 commit 6a28a072d90e4543b5e07a904e3a6afad0117e26 commit 1091796fb1d9d6888656f2416ad5c99cfc62a4bf commit b232c4a63a176ed837e3c6bb4a3ac79a1ca5ef1d commit 98aded657f506cd5d6d459d68ab4996d9dc0938c commit 1d734a3e5d6bb266f52eaf2b1400c5d3f1875a54 commit 4b498d19610c6acd36a8ddf622afdefe4ab093fe commit 5ddb0a8aa8e4754a8fb77e284e0d6f46c2350f88 commit b080a60731ad909eae4463684acc23d322e93579 commit 52e371914ed37f531a8d8c3b4cf1a1af2753eb6d commit a884dde8d9b6a4a817cc39663db824e5602a8001 commit 1eda95cba9df35f1fb0fb4b89511beb6603c614e commit fde7679a2b374c8c0932f5cc48438a312f3f442c commit 29323882aa48fc9f273db5820babf32c979359a9 commit dfa5543193f303a7270ec7c725e656970faf7d57 commit 202b85da0a2fb6f034f0290af841e0f29352af9f commit ab0d6ef864c5fa820e894ee1a07f861e63851664 commit f0ffa657e9f3913c7921cbd4d876343401f15f52 commit 4551d60299b5ddc2655b6b365a4b92634e14e04f commit a98a1a3c448820dfb3974839e1ccedf80b6fcacd commit dd925902634def895690426bf10e0a8b3e56f56d commit c7085d08c7e53d9aef0cdd4b20798356f6f5d469 commit 23ab1cb6591dba7c97b65eb407cd71147bd878b8 commit b0ee81dac3205db1e01019629c83595e9433d96b commit 8d3a2d3d766a823c7510cdc17e6ff7c042c63b61 commit 3396900aa273903639a1792afa4d23dc09bec291 commit a809b92ee0f84c3f655b16a8b4d04bc3665d954a commit ddda6542c85304eff31fe433cc0fc2c0d03c8f3d commit b3a901841ed1edd65b2f4cb9dd890ea1e2fc7551 commit f366d8804fc58f87b682bb02e8bf970b08e5df7d commit 21d6376865219277ca91bf95f9e54494c1ea7ae1 commit 7f75eb222d5c8c4b166ff99a38c85a3de97e0647 commit 649ae0e0d55f6d432ea73298929560ecdfaabd05 commit 34aa0a87f83b5322bd8541cd9534179c90c580d6 commit cb2f92569a2b7809a0569b380b9a6f2afa368cb2 commit 9aec90f9e545fba64ca47c18c37c588fa0d71b22 commit 1b9e8095fa3ac29e3a00ba1326976b479fd809e0 commit c6cbfc18138a22cfbffb208be92b18a531233528 commit d0fc54a201d673013b031ebce32e5d8a7e3bfb70 commit 6276706f33cc38ec59ebf03b680240ff74740c8a commit 7d085bb17e3cab501218a7a4604aff6c4a8b9585 commit fbc64aafc99baabe4d4e4d5a58d6113aad7909c7 commit f76506358078809461866086c5e224d949002016 commit 2e5d47fe7839298fa096970e184aac9bf82c3bd3 commit 5a891a0e69f134f53cc91b409f38e5ea1cafaf0a commit db3461a7743817ad7c73553902231b096616813a commit ed7171ff9fabc49ae6ed42fbd082a576473836fc commit 437ad4534a15ccf538ddb440cb29d3f445251605 commit 8a0f58ec4728ec04c654645bf8ed4070821ebbf3 commit fc7c7498db3da52efe874029a9c2ccc0ad2646ee commit f9e491c8633277d5398f384cf1fd1a477e04363f commit 37ee1456239cc5680f672f37417e52db2349965b commit 406792dc2a5c82e2f312e10c3c2c887de6ef80a4 commit 57a372f67688dc7aee23a2a00bcaf6188f592934 commit 15789fa0f0e29cf802f30d0e308da9c6b18c116a commit fb0a5834a338329bc665c7ce2b89f3e376557565 commit 5fb4d2a77113d3ebaa5c9dcdbef8b7bdfdeeffb2 commit b5e1a3874fe3cde73a4b02870bf3e8fa43777c5c commit fdbd69486b468e4963b4ef9f76901d3788252dd5 commit 5d0112f77793c0351faee6c723a6fb9191c12be6 commit 6f38589e170f7649bb4b5efbff6b681c31433440 commit 4c953e53cc34f8601b7b7c6286c65322452d35fe commit 186020c16650d6f7a05774ef318ae9056aae4f21 commit 2e9bbdd7b7cb5f364a917e7c6eff2a2c36f11895 commit 4dc4422f11b041a9cb7a86f2f9bc310e48620fa2 commit 31ef969301e58daaaed1728690e16192b77b9028 commit c4f503551fd65e50e657219c9bfc2987c51805ca commit 27ef61f9617478c432bc477d4eed8963deb89f24 commit a48f31fb78265d992c75d45bea215998367d4956 commit d082e5cde489caf7b29e966a9dbbc3fb43fb9164 commit 3ec2ad7c34c412bd9264cd1ff235d0812be90e82 commit 0f2c243dbfa008cec2dad03ea074156b6b176a03 commit 89ec85d16eb8110d88c273d1d34f1fe5a70ba8cc commit 3fbaf475a5b8361ebee7da18964db809e37518b7 commit 20588d5afce3992ff4fc9b61085e3e1affbac620 commit 27a74c125d029d0606b81ef865bb68dd975ca2f7 commit ab10f7748789fa9247949b530d8ee7d56eafe9a3 commit 6d88c0f94ac07ffc9f08e459cca036f4af08617d commit f685b38455b0c990a0f018a17b238d8ffb5acccc commit 4af8071b654dbd9b8bd003ab8e49eb16b4cb9fcd commit d479158f6502a3698b91829fa03bd3f2ea38efe7 commit b5be054c585110b2c5c1b180136800e8c41c7bb4 commit 76acba7b7f12517990f326fabfecb6f55e334233 commit 478efcb90b074f0fdd18e62b30ce09140bd69022 commit 5b7a59de4845460a313d93d4839258bfb982357c commit d4f1fde734eb73767015272dd2e8af1440b30a9b commit 32aada4d0a35ee613ffed23090bc23e1b40da419 commit f3c958ab857927e1ef2cc6806fcb0eb3f36c923a commit 8962915044364bb7c36b3018f74371a798aee46d commit 9d87dac3f9adbe30d545c577aab483dfce71143d commit 46553db49cf7b7dce95879ee0725f7d95de3c184 commit dc57edda816df4fb43bfc2809675e91d15994195 commit 3a50a51d04d2ca5066949073274e70191104f8e5 commit 439c3b124e9ee704766040d5182ccdaeb4d45499 commit 837cc7f1bf2bbebb05781efb6bc1b10d5c2e9308 commit ef9f3b5fd9d2594766c60b1e12b0e72e4918512c commit 2239aaa204f1c5002018a02903df7e45a0e0e503 commit b910cacb4e70066238feafaf3f2430ef2c8c3b12 commit 0eea81ee2e12900bd5276558434b675b52ab2d5d commit bc62abe1b92db4e027a92a6799f2193bb93970ea commit 1a2103d68547407a098c237d7cade79b4ad2b88f commit 2dc3851ef7d9c5439ea8e9623fc36878f3b40649 commit f49280ffd254e718ee01ef515fe91854fdf005cf commit aec773a1fb0253494b85b073f46a0ba1d798b726 commit ee7a846ea27bcbef5182d15923339a7bf182ec65 commit 96595204195d7e13736a84295e217316610d4cdb commit 19cff16559a4f2d763faf4f8392bf86d3a21b93c commit 0523374e303051c94457df9170f12a752d8b09cf commit 852856e3b6f679c694dd5ec41e5a3c11aa46640b commit f784750c670f7c5ac572590ddad77a89b4c997bf commit 3dc6da76ae55d667fca2c9f9497e8ea1a27497b1 commit 7970cb36966c9b9183255dc097ae0446300eebcf commit 53fdfa19e6a9220a14c0bb21273880774ea70dbd commit 7f0d7bee2079fc899c8280e177b0c0feb8b9debe commit 0d92cd8935a3fffbbfee0fd59cdc89ac5167b14a commit 2750ff97ee385b85195c5579ee911a551fbb0dd9 commit 770bd1d341130ff38feda169177159cd78389cfc commit d16ef1a18e39a5086a419d8b3c71adb30273881a commit 226d92e49a7e7a7f5a3a37a34df7c319b72009fc commit 4099cfda9dd856222d7cab6970a65896375616d5 commit 6b77dab5da721f2fa9d3c3611e1cbaead8030706 commit 7116c35aacedc38be6d15bd21b2fc936eed0008b commit 492be2a070f023c66aaef6ebd664567fda28c2a6 commit cb8f81c1753187995b7a43e79c12959f14eb32d3 commit fe828fbd87786238b30f44cafd698d975d956c97 commit 737ad3776343f6fcffee9d0d849dcd6f6b25f05a commit 11c742bb5a26d4adc873f6e6e2b69a59e1eae285 commit 8a879141dcd15d2db876ce3adf88b9b01650b7fa commit 6841a26e2c6715dc52a1cdd888e958dd2a92a5bc commit decbfaf06db05fa1f9b33149ebb3c145b44e878f commit 23683061805be368c8d1c7e7ff52abc470cac275 commit b9d228a5b2ebcb1f1f63170f5b20bc2f9d276168 commit 00b8a47d8ebe0419e649dc81b96033f6db6a4746 commit a055c91ac6ea493c2508401537e8732dd2a7bbf8 commit 6a60273a0e8274820210abcfe7ec0d5f1f38f458 commit f7c4a15225faeffe1e9f9a752097e7d85603ffef commit 91a759d402b5c17263f82097c647e784f217e2d4 commit 97d1f449c359207b2fb5bc62eaefb7e21ad619ae commit 64ddf5123eff2edf47202e08744c3c14a9d28f59 commit e139c0eb22ce5b2ab6a2056c1ff495f3a38322d7 commit b61c4bc674c6032827f2682a0c72ff577c36143f commit 1453323eac4f13817a07f40e78e76dfc635aab34 commit 7586fc52b14e0b8edd0d1f8a434e0de2078b7b2b commit 3338e4f90c143cf32f77d64f464cb7f2c2d24700 commit df2dbc925fad3274b952b865f85d26d1e056c1cc commit 60db6f540af9f93144d5039140aa2ed17171d168 commit 051c86afc342aed1f84d66ff5d09dc9e1c1685a1 commit 04b5b362bc2a36f1dfe5cad52c83b1ea9d25b87c commit dba1a6cfc311833e10df978f07147ea93b7045fa commit e189be9b2e3820c88164d95090f1fd6343cd77fc commit d361ad5d2fc0e4d59d5d538092c9b37889756642 commit 22ff907d4f0457b2800f4c6d4f40d4d4d31f7de1 commit c2e70d307f4491ff970208a41cce84c95771f340 commit d4c38154951b2bff6bfa4d5eb56df0bd08703cf9 commit 335288315af18c0def7f47a37fe7eaa782c98f6d commit b1f49ff9cbe14264c7eb33462fb700c49c7d91a8 commit 234eebe16138f94de3046f60c52763dc17fe5fed commit afefd6f245024684fff75100052065d6a9e8f75f commit b710dbe55dee946d82bc4815c40373cf8a391581 commit f846250b8a20e6c1225c64ce87a90d4f29cbf351 commit 87758a0ef12cfebb9fab8ef1d0e234dd7b3f4579 commit ccf8ef6b7506cc43e7fd504a85465c1c0786a107 commit 9a16042f02cd08bbd0a5a2d8e9c95347717165a3 commit eb067d65c33eecd4b81771384183ad42eec259bf commit 18ac82c26da45d033df7eb993139da83dd53ee68 commit 9de60462cdba60f575f97ca2655533b35273c715 commit 8783a18409b48455b3a63f0cd930c7c88beee93d commit 7c9cb6d1bf122fdac6a7d51f7dd8cc2d8c94b452 commit 4e9e50b6aeda3e3ce727453c5455cf08c68dac8b commit 272e6aab14bbf98d7a06b2b1cd6308a02d4a10a1 commit f327189389785b26e49904a7d3ba0c96506a4586 commit ec9e2e7acc6dabb8f00c2c60785931310caaa883 commit 2344413205521775d3b1d418e5659e3ae3bc263f commit 20b5a8f9f4670a8503aa9fa95ca632e77c6bf55d commit d07722e1fc749fbd78992650b6d00c9a2619be70 commit e389eefe34cebc6219dbe76a923b342b2f31e3ba commit bf2bc61638033d118c9ef4ab1204295ba6694401 commit 186fb12e7a7b038c2710ceb2fb74068f1b5d55a4 commit 88c511dea151b931ba4873119b1b3555aac0ce53 commit a9556637a23311dea96f27fa3c3e5bfba0b38ae4 commit f15e5587448989a55cf8b4feaad0df72ca3aa6a0 commit a8efd8ce280996fe29f2564f705e96e18da3fa62 commit 609d8b1c422cd8d1f93bf526fb236f2e07687e7c commit 255fc1703e42321b5afdedc8259ad03c7cc533ec commit 32a42c93b74c8ca6d0915ea3eba21bceff53042f commit 77cc3f6c58b1b28cee73904946c46a1415187d04 commit 4cce34b3835b6f7dc52ee2da95c96b6364bb72e5 commit 5151fa35ae5979821d091b80096b4c790b187bac commit fca0abb23447c37a6bdbc76798c24623a9b69a11 commit 40520283e0fd11237ed9dfc0991503b3403d5fa4 commit 321d6b4b9cbe3dd0bc99937d5e5b4d730b5b5798 commit f6d9f39f8d9167627bc0f9e3e12ee0100c1c1919 commit 80431c017f745a818ea45ae6a8373b737f73b1a8 commit f89001ea41771fe94005920c363dee43e8078bec commit 0e35457eb4b75f2bc9eca58a46d12e200e15e47f commit 770a961d581c577b579d8d38414b2bfc0b4766c2 commit bbad0090b9f4735e35e9881278b7a353f71b43d0 commit 9e7a74a12101bb07ccc22fb180c5e44051c5a407 commit 44a37ba12857c78389cda176c093967406250cfe commit d20c2f8464280550aeabd2766728590cf0ca8a4d commit 2a2391f857cdc5cf16f8df030944cef8d3d2bc30 commit 5e9c0d1c5ea355679f5b2a57b0c1b5932d78719d commit 11df68c265460d4dff5d19a1313f0fff69470f98 commit 453afb1a439994deeacb8d9ecbb48c1f2348ea0a commit fa509a33e34849cce6c17f969991dc87a864fbde commit 7bb98ca6542e19a9da7cc322114bb4867acd9614 commit 85878978fcd2812eaca309ead436bcd38777f6f7 commit c8fc8346bdd097d624771e606aef93644c072ef2 commit 5a48d67ac336436ed4a79c1c9e036a409b502329 commit 4446387572fb7952a387b8e45e8a96b4f08a2a53 commit dfc88eac97e2177844e5dfa877f2ff60c73bf507 commit e0446e122eae43c173d0c99375e1b2cc8da009a7 commit 168448111279e639e3296ee5c19e0cd96756422e commit 69f0925c67c21c1e3ccda152d2b6ce21c363e563 commit 244fe1666364865154930f34d8df5489df1922b6 commit df99acc7ba1be9f111debdb75e00539fed8ad21a commit 6dbd43dcedf3b58a18eb3518e5c19e38a97aa68a commit 6062ea9398d3ec09c521774f9d81f604d1a85fbd commit 0567f18e0757a260031e59487fe01f402c16c0de commit 8b5ccc9743ab026b12075eb5e3883cc9e42bc683 commit 1144e0dff5e68907cb8d3e2d64d1c00e2a96d1b2 commit 136367290ea5d7b5d05696189e9fd6162b9d9742 commit 15ca09499bc669b600dcdaf01fc0bf8c55e15b35 commit 34e804220f693fe6bb1c4e50f27dd855e9313f0c commit 919bb54e989c1edef87e9797be125c94c450fc65 commit dd6ded6e87a97a32e06c10b7f6639eebb779257d commit 58cfea648ff3b3bd283c03f094f24d379fe6fa82 commit aa451ae76fda24f919174a17df31c290f91a953c commit 852791985af63bcfd66d7f6ec160cc5f9fcb020a commit ab0b0eb5c85c5961913bdb9b8011cc8f5c14978a commit 065ca63e161a1ed7e619ef7dea0c7c6435ee2f8d commit 1c8f80c2aadf76daff01ab133fb11136e7248746 commit 6133cf70725049344a679f85df27d146a2d995ea commit 4b570ac2eb54f66ff64f2864be6303b8d67cc7f9 commit db6341a9168d2a24ded526277eeab29724d76e9d commit e28604d8337eac97fa956d6682b6312741ce85a1 commit 01bfabc2d1d8aaffe5268f8df0843a6d916dcbaa commit 75f0efbc4b3b088cca20864d055b3854a51b5af0 commit 8f4eca6ac52a72181b4f054d4ef6289a5d8cfa5d commit b05d6476ae2dde8eb447f907ab689083499edeaa commit 40318a2406bd426c6f4591269669c04e8eda571d commit 988bfa0bc67d7220ff8d9e2ba3a425727aa98af3 commit 0e405395e0b162075001b9c027443dd10b723a03 commit 570867ef90550b01f0ca0f919dba308c3f2fb605 commit 2845f512232de9e436b9e3b5529e906e62414013 commit 4416377ae1fdc41a90b665943152ccd7ff61d3c5 commit 73dd0ad9e5dad53766ea3e631303430116f834b3 commit 875ff9a7ee8824200885384effa7743892a34ed6 commit 010cc730ace807c6d267481b5fb6ff99acc35c46 commit 6ef29715ac06fad7b3e43086cb4df97952c3a4de commit 3376f922bfe070eff762164b3fc66981e3079417 commit cb5164ac43d0fc37ac6b45cabbc4d244068289ef commit 537ef0f8889761ffe3a6cb4a7bda4de47fe2d69b commit e45b6716de4bf06b628a9f3559f7fc8dd5e94d58 commit 58a261bfc96763a851cb48b203ed57da37e157b8 commit 25ebe10e3f4c897a2d348a9d4b674ee9ea28225c commit 5b993d00d7f0c970a5e5d34c1031069fb13b6986 commit b5de6a5ced074910b8fe57d3b0ab7f8843f85a3a commit a323782567812ee925e9b7926445532c7afe331b commit 6eb2aad402cc94ab4dd3780d8fd94c5c9bb7ed4a commit 501d94389310bb282915e730386d1150b13ae321 commit a64e7e5b05e014dad9ae5858c9644d61400ec6ef commit 122824165471ea492d8b07d15384345940aababb commit 66a0f6b9f5fc205272035b6ffa4830be51e3f787 commit 6628851159c77cf5666160e0272d46acc0772a6c commit 3126d5fff54368288e7fe1c0fd4ecb36b868e5aa commit a4dbe45c4c14edc316ae94b9af86a28f8c5d8123 commit ff9c674d1127e768050fe418470e74586985c87b commit e24b0ef20a20cd26a770c66bf87d911838ea00d4 commit 65112db0c21022cb1caed5a03c6392eaaf984c14 commit 4836c6cc01a16f1ac2b436550299474ad7183c46 commit 6729c73103bd7a0e60b0c980b51b5434010b4502 commit 1b5dfd1881dbe303536d4167500b94549ff2f6a7 commit b330f148017251810fc1f0c297f51b3039b796e0 commit 594cf78dc36f31c0c7e0de4567e644f406d46bae commit 51394119f640423858a2f04076d6f1c3e83fa715 commit 67733d7a71503fd3e32eeada371f8aa2516c5c95 commit cf4d37b8157ca085c17fdc1faad737465ff311b9 commit 22bc22ccf95bfa6eb6288ba4bc33d7fc0078381e commit 5fbca8b48b3050ae7fb611a8b09af60012ed6de1 commit 45c4d994b82b08f0ce5eb50f8da29379c92a391e commit 071d583e01c88272f6ff216d4f867f8f35e94d7d commit 037f93434ce9aea3dc19ba2d97e888a12e538f7b commit 54f90b03335916e21c417a31d0926841f7d97c56 commit 9c57bc08652a7c8e0e355c52c023fddc090fe9bb commit 002353a537a29b9be5bde3c1d9964628f0d20d45 commit 11b7309dbe9fa98d9b8d18cd51db4f385c37ae30 commit 19f01d4bbe9daf71901b200ab5c52591946b022a commit 8a04e342684a75ad1455fc3f23fab8e67c1aa9fc commit f9ae00b1cfb37ccf57017bf9cd82712ee0a5316b commit 3f53d7e442197b7e7d56b470b02dfd37a8bc5c46 commit 4461e9e5c374f8c11fee8e4a0e3290b072cfd538 commit e55ef65510a401862b902dc979441ea10ae25c61 commit 01cc7b2e8a59fcae0c4493720561e5b33a195fe7 commit 014125c64d09e58e90dde49fbb57d802a13e2559 commit 04cf420bbc32a599aa2481725f708435ea19bf3d commit bbb05f8a9cd87f5046d05a0c596fddfb714ee457 commit b932d5ad9257f262a0bfd1bd7146120b0adc11a7 commit b86a6a57b8ad1699ba8b1c270a79678383baf632 commit a08d75927f99e57c793f3a5d11260c22893fc0e9 commit 3d054c40766024d9d8fb051d017ceacf2b795f1c commit 5d666496c24129edeb2bcb500498b87cc64e7f07 commit f0b7dcf25834afd17df316367dfe5d4c890c713c commit 949237a34dba3f0218857f5afa0dde2076dd8c82 commit 6dcc304f85898b099b35c63748c5e11ba56d0c8a commit 87d23164d89c3898a0acb4ec0b431e787c27a91e commit 6692982582a54e7ecc80d7b0dae5db6cd47e2567 commit e565b6b0b5eee112db803bd955fb0387ce952d54 commit 4437936c6b696b98f3fe1d8679a2788c41b4df77 commit 9793a4a6e5eb8764c7410c361984ed01722bab9f commit 6efc0ab3b05de0d7bab8ec0597214e4788251071 commit b4148dc2fa062cdb94b5165d39827bcb1a3daa28 commit 1b0ce903fe747d72e9eab86a06c79fb2c7ba2bab commit 469a486541b6eb0d695a5558e68851fef35c16f7 commit 38d6f7e27d318cf41c2376980a105d02ac6e8b16 commit 3715112c1b35036039e8c4f75868a0b56a71a51d commit ff95eabe57368d641589441e8f638b4d59f79a82 commit e45a3933bb3ebd9a2ac95b6b60da029ee3a9f4e7 commit c50fe289ed7207f71df3b5f1720512a9620e84fb commit 97c6efb3649724e6163774f0e7405c5ca8b1097a commit c66f4711f79c937832b6c0e0b1805061667d99ea commit 727eb1e3f014e66dcdec53afc6f5bfe0d8c0871d commit 7546a8201ba288530ed1bbf2a8bdcce5e034a234 commit 789e51597d33ec0053b029127d797d86c0d857eb commit 379cad69bdfe522e840ed5f5c01ac8769006d53e commit aec8485f226c36eb4eea1d489772cd6f2c40144d commit bad928d2cae5d4d5ec1474ae7428a797fb34c111 commit c72084163cd22ebf59d936669ec25b1fc2b7494c commit 3adcf970dc7ec0469ec3116a5a8be9161d17a335 commit aeb4ae66cb50faddf60be9297d0d5d392aacdd3e commit a7f657097e96d8fa745c74bb1a239ebd5a8c971c commit 87d8ecf015444c51ea9d9154f633f98b7748a724 commit 33929707b808ba7839c40c15d3e68cbc51070b31 commit 4548f10bf4c67b569b7c9fbc6746340a558faab9 commit b71ccff68ef1a5bd1c02d0fca01ddb3d9088329a commit 175d648be98bae22eb22444377dd9a0c497c9d46 commit e0cb0c785250d0565c19ba17fc95bd7ab97670ba commit 076403a69837c1f8454ceced3ed6f0465835f4d1 commit bfbdf72d6c145e008805f0745ff79f9b8e301e0e commit 33eca84db6e31091cef63584158ab64704f78462 commit 84addde447fd9d713e101437db0d4924855eff4f commit 81a1c37c8b52eff636e77a794d0f0620c3a40af0 commit 21bb04152a18ac2314ef4186b6dcd46f1b847354 commit 70a65a5de23337c0c0251c482520224ac80bdeb5 commit eb4556f25fb4cb3a005a93dcc6dcc4b0c024f5f7 commit a69dcaf9310ab09ed97711e0fee08e59218ed8a6 commit 8d5ac8efb6d94efda53f604fd9c072b4754a3d85 commit 2039809783d630c1022bb3debe648abced7861c4 commit 06358ccecd75bfcd988f347f79592e23159aaaa2 commit 51e039542b87cb649d50ea3b5cf90847be32a30b commit 44378f6ef2efee3ccfa87de5860662f2356bdde8 commit 07226d09a200b92797afabd3a5131a0b504344c1 commit b5d4657e192ba7a3f21fc397cf5d169982b4ec0c commit b2fcb48214980adf6687dda84fa33f01e9a47e28 commit a74549dd55d21612171334fb70e45241d0ce0487 commit 2160f6f6e3cf6893a83357c3b82ff8589bdc0f08 commit 7293859c51e1d7f923073aa46e2072333b3e143d commit f7c2ea682d8ba17bfd37abd1e734348e0cf46c99 commit 5ee2d63ca1201ed23c6595cb2fc927222215bce3 commit 7745a1dee0a687044888179e6e7fcd6d704992a9 commit a9b67c036c7f5d187fb88eb74fe04dff1098700f commit 7c1a2d8aba6cadde0cc542b2d805edc0be667e79 commit 6122f5c72e38a88eda13c7168e2ebbd3bd80b681 commit c67db6a6a6be4bb1db1b0fd5b24040d68e461cb1 commit af76ca8e180f38a7d874c18cf810707762766627 commit 30e8f4c2bd532c44af0e0fad9c04e7d2970b91a6 commit 28d43d0895896f84c038d906d244e0a95eb243ec commit 1e487c9173ca12ae372f71a5f5c0eb57ce0ab108 commit 1125f95cd2455b51ad1c16d7f96ae39117083d20 commit 96316211eb5c4b58f34099e9e6f71fdfad7af01a commit 52491d97aadcde543986d596ed55f70bf2142851 commit 6c0a7c3c693ac84f8b50269a9088af8f37446863 commit 02a416afbe127b1c9ce85ffa340c0a32dbc53184 commit 70c33a2710cd08a4be974a1c7f9cdb5601a8806f commit 4f7d8da5e349c1126cdfcdd2ceede00382ad2ceb commit 8bdb468dd7a5d17f8556afdd4c8d046939ff965f commit 6d0ebb3904853d18eeec7af5e8b4ca351b6f9025 commit 641bb4394f405cba498b100b44541ffc0aed5be1 commit 16ba2b28df3a83443fc6b4e5491189d2e5caca64 commit 65fe9617a1256f0a36696d48f7c63a8d3ec290bc commit d69300abc2dec930fd280a013984150ae7c6a386 commit 2bd87f0fc24ae29ead9808d341497f465b339c0a commit c5f728de696caa35481fd84202dfbc9fecc18e0b commit cad08fa7760ace5e01b24c6f9e1f918fe72324bf commit 3034cc8107b8d0c7d1b56584394e215dab57f8a3 commit 20f61c1ead989e5d16f35bd0a546c6233b703b69 commit d7eafed3223af19add14b67a390ec2b983d890e0 commit 2bb3fc536d692d43cd55396ecff73c7691eeae85 commit ddc94d0b17e8ea8179ecbbefacac3fba0fb77265 commit bf758226c7e6927f1c2c34fd6eb2cb580b77f543 commit 590b9d576caec6b4c46bba49ed36223a399c3fc5 commit ccbfd2df3018e2694f750abe5e93b647a4eef5b1 commit 83e5af5997554115e198c2e9e97564702eac04a6 commit 6a2161a155f92985b21e38a9e8b9217f620d606f commit 14ee9fa87d8c96b23d77397b684fb431c5bc2677 commit 3eac4684ecb5ea696bd283bd7f35e4829973f4f8 commit b1aa0491fad27f030c94ed42c873c3f46f5e7364 commit 8906064715c16571e691f67c2746ed1bf1bda6b9 commit 390fa93e6efef330baa2785edc2a484f7ce0b292 commit ad17b124c3a08241da36eb94a6f076446432743b commit 6f4835f9df2df7eee0af74c850d0a06166c199eb commit c66db9e9a025006d729c87143c3f43b5873b4a1f commit 988fe2862635c1b1b40e41c85c24db44ab337c13 commit 0ba3cb8e7cf08223a9246ded3c1bee25a74d1f7f commit b3e9bfd86658b562a33b1ee8563d59a593327aaf commit c24538c4aa352b68bd5c429b7fd3ccf4d4407143 commit 8a060e9c17d0fd7a182e335a52dcb5fe327e3d86 commit 6e8410944767381524544390ce030c86f07399da commit efaf15752d113e81a5e9f25f57dc203f7c3007ab commit fc5da5c00c0a4880220f6f539293e49c766fb93d commit 29d3d6af43135de7bec677f334292ca8dab53d67 commit 9888773753333ee7bed1697abd6fd9c84239cc4a commit f2ea269bd2a55c4a28a9b825424b059a20259793 commit 072b4414784524b6debda1b3b2ffbf10d66095e9 commit 7d8e9e65f23040b2f9e9670bc971d3ec8fa69d47 commit a10c93931b61b22ff6601f74192151d548b0b14b commit 1741281a157fcfacf46dbb6ce39c13bf2699d371 commit 2f3806f781421ce6dfa60471eb2116627c0eb893 commit 097af47d3cfb99ee02afbdd7e0d9596eb012c65a commit d1f214432110748603dd310fbe6099df875e6f04 commit 2480599890296b386839bc53367c10f19d97716d commit 8fe4fde381a103114903f823c6d18457b4b891e4 commit 8b2429a13feaee01d62bc248417343586f6fa489 commit 01b4ae38e5dc6798c6cd477be9c363c5ae45fa7f commit 178ad0e280c088f5abfa61793cb992fa120d1830 commit 4d5ddfa4b1b2bf1e936b8d38735910480f9545ed commit 01163079e136e6d6ce4474b964b8a7ec954cac81 commit 1a1995b1dc948d471854360ec0fd3306f54dfbae commit bcee4c3f89879e15ef57f3217ded97f00b1334d3 commit 01d05521f7e2523045d3ff7b857dd68db276d31d commit f8eee864ba5cbe1447a68949883f69228e53b138 commit 21818f39beda2e843199e5d8d9e3f9e43c8080a3 commit 3f2d35c325534c1b7ac5072173f0dc7ca969dec2 commit ead60e9c4e29c8574cae1be4fe3af1d9a978fb0f commit a1498ab229ca16dfc35331dfb309f8e28b84bb5d commit da6ec743397702e0b551bcacfeaa48829d303a29 commit b3b91369908ac63be6f64905448b8ba5cd151875 commit fcba2ed66b39252210f4e739722ebcc5398c2197 commit 9f6b47907e2d01bfa90c3003e42b6dfeefd8d03a commit 059f6fc89968f4f4527f1b706de8017d368ad9dd commit 1138137c2c48f036b87e80cf3905c1acbff6b0de commit b34b43f9cb45ac15b0e48b5570af9e074959dc68 commit a954e0a26146c465934f4944d49cc03324747917 commit f70e43763e6a550f5b50ba4f6a0d6aef5121ecba commit 402bd11a5394636b2bc9712a58b97bc3cbca69df commit 631ef2e6adb0aec8d639dbea17c5ed08c8364df7 commit 8a37cd4dc50e8f29168dd5bc766ba40a1968724a commit 41a46296214fa07cf5140c9ac9254e095bdcb960 commit 7134cc23fe73f4ddeeaaab9284399cebfd826c51 commit 963ed4efe0c6416f5a2f61e107ee3a27f0bb757d commit bc947d9a8c3ebd207e52c0e35cfc88f3e1abe54f commit 8da19441d0a02b53e362df81843bb20db3a8006a commit 34bb7b813ab398106f700b0a6b218509bb0b904c commit 7a199557643e993d4e7357860624b8aa5d8f4340 commit 596a7f1084e49cc65072c458c348861e9b9ceab9 commit eb7205b7cbff5f9ddafedf82b62590aae0a72dc0 commit 4da5a95bf125fd682249f60e296455c6413b4e10 commit 4453808d9eab0461dea338e89372ffc4a3c50acc commit 4c4e9cb58dd75c87300ca63307ef7d4f9656eda0 commit 7b17e8f3a074ff4558527f6c595f49444a2c6fa0 commit 0126c0ae11e8b52ecfde9d1b174ee2f32d6c3a5d commit 2c7795e245d993bcba2f716a8c93a5891ef910c9 commit 6fbbb660b1d423a777d7567b7475a6a01aa7fd91 commit 760e3c8b3288279841aa8a71e6d65c67a3934d01 commit a3cc326a43bdc48fbdf53443e1027a03e309b643 commit 0607a50c004798a96e62c089a4c34c220179dcb5 commit 4481df364d2038eb4a8f5150367b47955940f027 commit 5359d5bc975466e8791d7f870ea4a96f1b0973bf commit f5a972dfe3e993f09cf12bd36389a942ecd23350 commit 2578487ebe6ca34fe9cd950bf68e8158639ddb1b commit 559a285816af5b72284a6ed65eb82a68ee497d60 commit e146a7ab218626827b7c06e189e69cd2abcd1d37 commit e8397d327e7b0d6132197c9d8fd7977f84f3dbd9 commit 01be2b62c0f3c66832472ed3e48e61d631094606 commit 101025e94b537e8b5426c73a985b26fc95c199cb commit 7eafe7a730bad6f0efb62b2d260f1ae3f2d09b95 commit 663b0f1e141dc60ce6c09ae6afc5f213b22d13ca commit 27f9dcb9cc067d40077e116ac062e185ccd7a0d8 commit 7ccde2e6c0a5e50e11b74353b456bfe602efe6aa commit 0df8ef6e1b5dc7a6edc6242a95f47a257ffecff0 commit af04e65f6b66339080fba0d5f44a759647371652 commit bd7c8ff9fef4b21a97f9b30a7364845ee6eaaf23 commit 2ef8d63da81d9e89cbc1eb4867d638f88bf5dc78 commit 2f7eedca6cecbfad52d5b52c1550066d9252c947 commit 578aab4ecc73476393389440724b7a391cc0cea9 commit aa47fe8d3595365a935921a90d00bc33ee374728 commit 25d48f2eb0af1f0e6f09f54a1a1716f48c0722c9 commit fedf6db3ea9dc5eda0b78cfbbb8f7a88b97e5b24 commit 88dcad2d07c8d82e6a097c8e74239eb67333bcf7 commit b8faa981a7e62848ca4ba1c77282dfdc71d0edf5 commit b2d4da31a1f40b05a61076efd4c79b88439003b7 commit 6c6ca71bc1653d00623702ae031d0f9bde06a6fc commit a4500b82bc85f7a15cff0729315c96015849e9e8 commit 4c3140fea6277e1478ba206e8f45b9cf7a128cb9 commit 32bd3eb5fbab954e68adba8c0b6a43cf03605c93 commit 741d73f587d5cc86db5e65cc107e031263302616 commit b615b9c36cae0468491547206406a909a9a37f26 commit f7e3885aa80559d5e497eec18e6909d594497c13 commit 0289507609dcb7690e45e79fbcc3680d9298ec77 commit 0c8c5bdd7eaf291b6f727e98506fb68acee3a4cc commit 70a6587dca37a3cf12ab323f7fd73266abfc274f commit 83dcf232cc7919725a331359a300fb3929651b6e commit ad92f52312614b0ef6eee07ee64f1e7661072a49 commit 457ca96d04f599d2f95bd61144851f2181ccacc4 commit 2efba0c095419f93f8913f1cbae8bf3fb030db20 commit 70b4ab5489da0fe5b699a8466aa4f73ea304ae65 commit da9a73b7b25eab574cb9c984fcce0b5e240bdd2c commit f1a4dceeb2bd4b4478e4f0c77dac55569d153fb3 commit bf05aeac230e390a5aee4bd3dc978b0c4d7e745f commit d92b90f9a54d9300a6e883258e79f36dab53bfae commit 9498f2e24ee0133d486667c9fa4c27ecdaadc272 commit fcd33d434d31a210bc9f209b5bfd92f3b91a2dda commit ec2231b8dd2dc515912ff7816c420153b4a95e92 commit 8f72c31f45a575d156cfe964099b4cfcc02e03eb commit 2775df6e5e324be9dc375f7db2c8d3042df72bbf commit 26df39de93bb8763bb3088db6c76eb98d4cd7213 commit ae2c6d8b3b88c176dff92028941a4023f1b4cb91 commit 9ea925c806dbb8fee6797f59148daaf7f648832e commit 21d1d72475809734a5149ecfffdc7551503b042b commit 52755373ea6197dac40b9804ce967611b5e989bf commit 0da531c82a0fcac65407d28ecdb2a1e19c833df5 commit c389a0604cfbcdb1f8f53a76560eb31e0700e206 commit 28b0ef922738b74335c20b8ed4bf8e259353a3a3 commit 2f27fce67173bbb05d5a0ee03dae5c021202c912 commit 7ab9ebc580617831355843f19224f1e31bb8e983 commit ee06c09ded3c2f722be4e240ed06287e23596bda commit 99b1f7493bfa757b03d41ee6d7f7d00f81fcba5d commit 69bbe3adf36de47315498c9384f99a1ff9171694 commit 73d10c7788f6d2b7badf9973afbdea7ca433c15d commit ddc73c465628ab3e60f7eb5b4063b644c18b6336 commit 9460f4bd5970f2e46fe190a0cb9814697bd7f21a commit 6c10ba06bb1b48acce6d4d9c1e33beb9954f1788 commit bfc00a7754c40544c7446d3b664049d6e00ee0bd commit 902b4027216aeaabe1562e1db070550c06f3ec89 commit 0110ac11952f06419d267f51a3989e989b17e67a commit c400ec6990fb04a2ec9929b253dafa7e77c7f555 commit c77a46bebe99e70600e636a3a1f285637c479f46 commit 2ed186df27f078eb75c52d09e04aa7b0f9920f57 commit 3c75518cf27aa5a7e22e1f8f33339ded3779079b commit 03b5038c0ad069380fab7e251d2bf3f1540d20f4 commit 797fb1533315571ff9e55e80154f48cd47f3dbe5 commit c1de938fb7e5edc4c71d33f73e9fc5c77feb02a0 commit 7181faaa4703705939580abffaf9cb5d6b50dbb7 commit 151b1813919d4ab932e69ca4032761ee0789b04c commit 2ae6cd583c4c86c2b7e879b07effb8ffb10756bc commit 2778701b165eda674756537054d460fb4b0cf2e2 commit c03fca619fc687338a3b6511fdbed94096abdf79 commit c2ed7002c0614c5eab6c8f62a7a76be5df5805cf commit f588da30a20cf184f150420e4098b694908a4207 commit d18a56b247f4f3f7dbdd3adeeebd05c23f1e3d3e commit 5a3d3e11349c2e298c0b6b4d37c8241f44d37e3d commit f57b77d667dc6bd2b114d08d04b03869539209f6 commit 0765b2afc1118a6ab5fee624e206c782d70db28a commit 09cb922c4e14e6531979bff4e6bb3babcd9cb188 commit 401c90c4d64f2227fc2f4c02d2ad23296bf5ca6f commit 3766a840e093d30e1a2522f650d8a6ac892a8719 commit ae5100805f98641ea4112241e350485c97936bbe commit cf4cebcec619d963fa7496018f03cb0ff00dc257 commit e79563bf5fb17d1a199c7c0f7d5a7a98c077302a commit 07bfa9cdbf3cd2daadfaaba0601f126f45951ffa commit ce83ae29f93772d604b4ea73459fb17822d6a6b0 commit ff599ef6970ee000fa5bc38d02fa5ff5f3fc7575 commit b6499840cafca25175f43ebd601913bf31d06f16 commit f510dd5c210bf8cc22e4be48cbbda3cb754219f5 commit 4bdc5b504af7de1f649004cfdd37445d36db6703 commit b74571a83fd3e50f804f090aae60c864d458187c commit 327e62f47eb57ae5ff63de82b0815557104e439a commit 199888aa25b3a3315360224bda9134a9b58c9306 commit fa8a4d3659d0c1ad73d5f59b2e0a6d408de5b317 commit 06c9aeb57fe894e6e442cd66870cd3e863bbf08c commit ef126c06a98bde1a41303970eb0fc0ac33c3cc02 commit 42ac749d5b8bf78b347ac8a52eb15cc397b157a0 commit 54b86443fd4437c051aefd3f462cfff4defd420c commit f2be7b39e43893ab5361115de2b95e7c5c86f190 commit 375b035f689735fd7a87ff31ccac3a42717252bf commit e7d4e1438533abe448813bdc45691f9c230aa307 commit 042658d17a54c9dc8c028986dfbde49f4aa01871 commit 7b6df1d73290961ff0a00fd0022f28dd19e37181 commit d5a29e6a61028887bb8480e7c4af3547d6f3862d commit 87d749a6aab73d8069d0345afaa98297816cb220 commit 6dcba0975d39b30be65dd038fed69e1aa111c73a commit 856265caa94a3c78feaa23ec1acd799fe1989201 commit 84f76408abe989809de19d02e476b044fd985adc commit de848da12f752170c2ebe114804a985314fd5a6a commit 617a814f14b8914271f7a70366d72c6196d17663 commit 7856a565416e0cf091f825b0e25c7a1b7abb650e commit cac075706f298948898b1f63e81709df42afa75d commit f8ffbc365f703d74ecca8ca787318d05bbee2bf7 commit 3a37872316c2e3288e09a1322221c83e5929768d commit 440d52b370b03b366fd26ace36bab20552116145 commit f0fa69b5011a45394554fb8061d74fee4d7cd72c commit 338aae5478befee9e0e66afb78c2ad1e8d69825c commit d7126c0cfc137a580eba92bd82b6d288bd43961d commit e860513f56d8428fcb2bd0282ac8ab691a53fc6c commit 8b0d2f61545545ab5eef923ed6e59fc3be2385e0 commit 4771d2ecb7b9e4c2c73ede2908d7e7c989460981 commit 126be9b2bef9c7068fdd464790d82e6d70f9d8e6 commit e1d27f7a9cea1e0c06699164e3b177862e7b4096 commit 6ae9e1aba97e4cdaa31a0bfdc07497ad0e915c84 commit e45b011d2c4146442a388113657b70f0c7cad09b commit 8048e5ade8224969023902b0b3f64470f9c250a7 commit d52ac79053a2f3eba04c1e7b56334df84d1d289f commit 4286cc2c953983d44d248c9de1c81d3a9643345c commit cbc8764e29c2318229261a679b2aafd0f9072885 commit 087913e0ba2b3b9d7ccbafb2acf5dab9e35ae1d5 commit 3cb576bc6dfb8940228b8130638860b631dd428a commit a8387ddc0d15a365dd04baaa325a863d3612e020 commit 34ad56a467c320d07db22146cfb99ee01704a5de commit d7d2688bf4ea58734d73e18edcbf4684b1496d30 commit cb787f4ac0c2e439ea8d7e6387b925f74576bdf8 commit e7268dd9bb9953a9eb0df9948abf5195bf474538 commit 994aeacbb3c039b4f3e02e76e6d39407920e76c6 commit abf201f6ce14c4ceeccde5471bdf59614b83a3d8 commit 43102a2012c2e2f8424d7eef52aede8e73cf2fed commit 394b52462020b6cceff1f7f47fdebd03589574f3 commit 2cd86f02c017bf9733e5cd891381b7d40f6f37ad commit 2b55639a4e25ff02ee496368b03456bd28ebdc0b commit fa998a9eac8809da4f219aad49836fcad2a9bf5c commit 282864cc5d3f144af0cdea1868ee2dc2c5110f0d commit 7a1f30afe97294281a2ba05977688385744f9844 commit f9e7ac6e2e9986c2ee63224992cb5c8276e46b2a commit d51160ab00969ee6758ed2dcbc0f81dd476a181c commit c36df0f5f5e5acec5d78f23c4725cc500df28843 commit 05af800704ee7187d9edd461ec90f3679b1c4aba commit ef785ca7f7c80891580cafd36c8dd86375684310 commit 52d4e3fb3d340447dcdac0e14ff21a764f326907 commit 34f50cc6441b7fee4a86495d5ef43da5d254bad9 commit 9286a191abe2ea01b34be577e8a09a412dcbb644 commit 5f60d5f6bbc12e782fac78110b0ee62698f3b576 commit 156cc376a200aa9890c1f71c5e3d2fec874a7d07 commit 475be5144459b502d8aa987637dd4d9f38422786 commit 240ebf1c9d4ce1576f58e10365fdd3bed8aba7dc commit cffa8e83df9fe525afad1e1099097413f9174f57 commit 790533e44bfc7af929842fccd9674c9f424d4627 commit 2d2be279f1ca9e7288282d4214f16eea8a727cdb commit cb58977016d1b25781743e5fbe6a545493785e37 commit d1ef967126e295d36201e79ec64efdba31710353 commit 0f18ac78aa974660a948dafcc45f4dc6e2c5858d commit 7929ffce0f8b9c76cb5c2a67d1966beaed20ab61 commit 3bf90935aafc750c838c8831e96c3ac36cfd48d5 commit 6ef5a04221aaeb858d1a825b2ecb7e200cac80f8 commit 1b30f87e088b499eb74298db256da5c98e8276e2 commit 9e3c85ddea7a473ed57b6cdfef2dfd468356fc91 commit 74231870cf4976f69e83aa24f48edb16619f652f commit 67801fa67b94ebd0e4da7a77ac2d9f321b75fbe0 commit 8135f1c09dd2eecee7cb637f7ec9a29e57300eb8 commit 7257d9c9a3c6cfe26c428e9b7ae21d61f2f55a79 commit a6f3b2527375c786f2eff77d3ee8b805bcfe026d commit 301d194d01f3074efcf3a10eae116fcddb76788a commit 5b272bf7dcf969eb4f19ef994b6e60458ee6300f commit fe6fceceaecf4c7488832be18a37ddf9213782bc commit 4cc2718f621a6a57a02581125bb6d914ce74d23b commit d7d7b947a4fa6d0a82ff2bf0db413edc63738e3a commit 8e82d1199564ea0baab7be31f6558406bab4fe1d commit d6b9f492e229be1d1bd360c3ac5bee4635bacf99 commit 0a9906cc45d21e21ca8bb2b98b79fd7c05420fda commit 79bc412ef787cf25773d0ece93f8739ce0e6ac1e commit 04e0481526e30ab8c7e7580033d2f88b7ef2da3f commit 835745a377a4519decd1a36d6b926e369b3033e2 commit 32fda5650625065b8ae6dbd9967fb572d3835c35 commit db7f92af626178ba59dbbcdd5dee9ec24a987a88 commit e863781abe4fe430406dd075ca0cab99165b4e63 commit 42465603a31089a89b5fe25966ecedb841eeaa0f commit 3fd76be868ae5c7e9f905f3bcc2ce0e3d8f5aa08 commit 1badf482816417dca71f8120b4c540cdc82aa03c commit fc4d262721705f2a7b860946504e7b8a313f06e1 commit fcddc71ec7ecf15b4df3c41288c9cf0b8e886111 commit 28a5dfd4f615539fb22fb6d5c219c199c14e6eb6 commit 4809a017a2bc42ff239d53ade4b2e70f2fe81348 commit 512a9721cae0d88d34ff441f2f5917cd149af8af commit 26498b8d54373d31a621d7dec95c4bd842563b3b commit fe4a435bd0c20beb6d7caf87b49bc49a2233b18b commit b634acb2a070c072900c56154aa43e2ec2d45b2d commit f07fd958a49264eebc1db9c946eb5d2e91c470fd commit ac44ff7cec33d5c2d4b72d52603552ec64c1a8bf commit fcf38bc321fbc87dfcd829f42e64e541f17599f7 commit d2c72d96dff5ba408bb107193b53e3134a516c4b commit c0ec082f10b7a1fd25e8c1e2a686440da913b7a3 commit 7760d7f93c764625fedca176891238675fd06d62 commit e7457532cb7167516263150ceae86f36d6ef9683 commit 68d26c10ef503175df3142db6fcd75dd94860592 commit 7a1613e47e65ba6967085ad99dee95420346a0ce commit 28127dba64d8ae1a0b737b973d6d029908599611 commit cb07c8338fc2b9d5f949a19d4a07ee4d5ecf8793 commit 69b3d87212676c4c22aa4660435e2066dc7d1311 commit 2f54e71359eb2abc0bdf6619cd356e5e350ff27b commit 4ceead37ca9f5e555fe46e8528bd14dd1d2728e8 commit 03a86c24aea0920a1ca20a0d7771d5e176db538d commit 761f916af44279a99db4e78c5f5ee839b31107ea commit ed931fb40e353586f26c3327813d142f782f5f78 commit 82926f52d7a09c65d916c0ef8d4305fc95d68c0c commit 477d665e9b6a1369968383f50c688d56b692a155 commit e7518276e9388d36f103e8c1c7e99898a30d11f5 commit 4e8b5a165160e2f521cc10bae58ce0b72b2e22b5 commit 816b186ce2e87df7c7ead4ad44f70f3b10a04c91 commit 6df106e93f79fb7dc90546a2d93bb3776b42863e commit ffafd12696d1a4c8eeb7386d798d75e1fafb4e01 commit ec1aab7816b06c32f42935e34ce3a3040c778afb commit e5a3c24bcaf7bc1c3c2647395aae5de4660c1c64 commit 5b3c0209e88a67a8d029ed8b6e30bca383cbdc55 commit c09c4f2a972ca7cd9c8926594aa2099bcbcd3b79 commit 7626b4e96bdbbadca046a775c6b8e02b842c05e7 commit 49ff3e79a7f49e269b0278e75d35d6421f5538a2 commit 83f000784844cb9d4669ef1a3366479db3197b33 commit 338b655a1178900ac05aca7ac66dc28b05100430 commit 85e444a68126a631221ae32c63fce882bb18a262 commit 5c23878252515b8d2b86839bd4cb7dea7088aacd commit bf58f03931fdcf7b3c45cb76ac13244477a60f44 commit 9515e74d756b6825f6119823d41b437832d89355 commit f888e3d34b8641a551eba8e0fa26209c5392eec8 commit f67644b219d458d4b314e78f2304b73985390311 commit 23d16ede33a4db4973468bf6652a09da5efd1468 commit 63feb35cd26557572ad95fc062ede344bb61d9ad commit 108bc59fe817686a59d2008f217bad38a5cf4427 commit ba1959f71117b27f3099ee789e0815360b4081dd commit 7c210ca5a2d72868e5a052fc533d5dcb7e070f89 commit c8fb95e7a54315460b45090f0968167a332e1657 commit 22ef43c78647dd37b0dafe2182b8650b99dbbe59 commit 69418db678567bdf9a4992c83d448da462ffa78c commit 9c1813b3253480b30604c680026c7dc721ce86d1 commit cdc21021f0351226a4845715564afd5dc50ed44b commit 2ba1f81ec7cbb2a9920cd3435c515247863b32a6 commit e3e1cfe33f932860e070eafec8df8780e3b889a8 commit 4d95a12beba146b0ca2de59c7ce905bc0aadfd0c commit 746ae46c11137ba21f0c0c68f082a9d8c1222c78 commit 4aa923a6e6406b43566ef6ac35a3d9a3197fa3e8 commit 935abb86a95def8c20dbb184ce30051db168e541 commit 25f2ff53838ccbd5ce558b5d23fac8a5d7f86655 commit dcb6c1d071712186c213c26b245779f7859b9cec commit 6a9d2e2988fa3ef9b03ddd9ba9aaa54dc23635e6 commit 5d01b56f0518d80211812420a8907ca0b6c6e4e3 commit 412a2a8fdd4eb89b263623c7a59b77dbfcf8f215 commit 4700fd3e050da8302e60ebd4850d008250fa7204 commit caa714f86699bcfb01aa2d698db12d91af7d0d81 commit 926163342a2e7595d950e84c17c693b1272bd491 commit add4163aca0d4a86e9fe4aa513865e4237db8aef commit 993ca0eccec65a2cacc3cefb15d35ffadc6f00fb commit fe05cee4d9533892210e1ee90147175d87e7c053 commit 8594a2d8d72d86b70b8bace607100d88111aedf6 commit f99c7cca2f712d11a67148cfbe463fdefeb82dc5 commit b0ef514bc6bbdeb8cc7492c0f473e14cb06b14d4 commit b04ce1e718bd55302b52d05d6873e233cb3ec7a1 commit 7fd3fa006fa56c0ec299c61ecf5c572c723adad5 commit 4b468a92ddb2985da66823910a1643349fe6447d commit 55e8a3f37e54eb1c7b914d6d5565a37282ec1978 commit 7d1e2580ed166f36949b468373b468d188880cd3 commit 1491efb39acee3848b61fcb3e5cc4be8de304352 commit 4f26c95ffc21a91281429ed60180619bae19ae92 commit 694c79769cb384bca8b1ec1d1e84156e726bd106 commit a6dd15981c03f2cdc9a351a278f09b5479d53d2e commit 1356bfc54c8d4c8e7c9fb8553dc8c28e9714b07b commit 74e1006430a5377228e49310f6d915628609929e commit e301aea030d60da760f85f854a82ce788d5cf6e7 commit 3ce3f85787352fa48fc02ef6cbd7a5e5aba93347 commit b46dadf7e3cfe26d0b109c9c3d81b278d6c75361 commit f790a2c494c4ef587eeeb9fca20124de76a1646f commit 4d75b9468021c73108b4439794d69e892b1d24e3 commit af797b831d8975cb4610f396dcb7f03f4b9908e7 commit 64a2b6ed4bfd890a0e91955dd8ef8422a3944ed9 commit a353c78459f4d116216393cc29032ef5fe1472d2 commit 514447a1219021298329ce586536598c3b4b2dc0 commit 052ef642bd6c108a24f375f9ad174b97b425a50b commit 444fa5b100e5c90550d6bccfe4476efb0391b3ca commit f432a1621f049bb207e78363d9d0e3c6fa2da5db commit 9b984a71c240ed9287d6358109f6a0c6ab5bba32 commit 1a6bbc4d9e55d6c9df2dfe7d4f2705a544d8ca13 commit b8d9d5fef4915a383b4ce4d0f418352aa4701a87 commit bd8a9576617439bdc907c9ce0875909aea4221cb commit 6825cb07b79ffeb1d90ffaa7a1227462cdca34ae commit 9fc0cbcb6e45d6fc96ffd3bb7b6d6d28d693ff4d commit 16dd2825c23530f2259fc671960a3a65d2af69bd commit d641a151fcaf0d043075b214b469a14abab25af2 commit df0279e2a1c0735e8ca80c5df8d9f8f9fc120b4a commit 0e5ac88fb918297a7484b67f2b484d43bed3fbbe commit 79365ea70714427b4dff89b43234ad7c3233d7ba commit db0fc586edde83ff7ff65fea56c4f72dae511764 commit 67e023b93d69e5a21b16f9602656a803d314e825 commit 5a67c31669a3aca814a99428328d2be40d82b333 commit 4bb2f52ac01b8d45d64c7c04881207722e5e6fe4 commit 5f77ee21eb44e37e371bcea195ea9403b95d1399 commit 7013a8268d311fded6c7a6528fc1de82668e75f6 commit 3387e043918e154ca08d83954966a8b087fe2835 commit ce0d6970231903f43572a6998020fdc8b3a8f455 commit dd886a63d6e2ce5c16e662c07547c067ad7d91f5 commit 46f1f4b0f3c2a2dff9887de7c66ccc7ef482bd83 commit be7eeaba2a11d7c16a9dc034a25f224f1343f303 commit c0403e4ceecaefbeaf78263dffcd3e3f06a19f6b commit 21ec425eaf2cb7c0371f7683f81ad7d9679b6eb5 commit b6ad7debf5ab3e581b5cb0f5c94e404ec968bd5b commit 9776c0a75a1a86b753b2dc7c1ecc3baa048a8dec commit 93d1f41a82de382845af460bf03bcb17dcbf08c5 commit 32c4514455b2b8fde506f8c0962f15c7e4c26f1d commit 99d051c4b33cfb451dca0c30e28da25db2ce4d7f commit 1eb0de899b1eafe2c3aca8763c99e5c5ed791561 commit 21c1c6c7d732c2f6f4c5ffc77e103aa3ae8bff1d commit 44f392fbf628a7ff2d8bb8e83ca1851261f81a6f commit f48ab0a39f12fd83fae13bf81152531565cd5e75 Signed-off-by: Robert Foss <rfoss@redhat.com>
2024-11-21 22:32:41 +00:00
/*
* HDMI 1.3a table 5-14 states that the largest InfoFrame_length is 27,
* not including the packet header or checksum byte. We include the
* checksum byte in HDMI_INFOFRAME_HEADER_SIZE, so this should allow
* HDMI_INFOFRAME_SIZE(MAX) to be the largest buffer we could ever need
* for any HDMI infoframe.
*/
#define HDMI_MAX_INFOFRAME_SIZE 27
#define HDMI_INFOFRAME_SIZE(type) \
(HDMI_INFOFRAME_HEADER_SIZE + HDMI_ ## type ## _INFOFRAME_SIZE)
struct hdmi_any_infoframe {
enum hdmi_infoframe_type type;
unsigned char version;
unsigned char length;
};
enum hdmi_colorspace {
HDMI_COLORSPACE_RGB,
HDMI_COLORSPACE_YUV422,
HDMI_COLORSPACE_YUV444,
HDMI_COLORSPACE_YUV420,
HDMI_COLORSPACE_RESERVED4,
HDMI_COLORSPACE_RESERVED5,
HDMI_COLORSPACE_RESERVED6,
HDMI_COLORSPACE_IDO_DEFINED,
};
enum hdmi_scan_mode {
HDMI_SCAN_MODE_NONE,
HDMI_SCAN_MODE_OVERSCAN,
HDMI_SCAN_MODE_UNDERSCAN,
HDMI_SCAN_MODE_RESERVED,
};
enum hdmi_colorimetry {
HDMI_COLORIMETRY_NONE,
HDMI_COLORIMETRY_ITU_601,
HDMI_COLORIMETRY_ITU_709,
HDMI_COLORIMETRY_EXTENDED,
};
enum hdmi_picture_aspect {
HDMI_PICTURE_ASPECT_NONE,
HDMI_PICTURE_ASPECT_4_3,
HDMI_PICTURE_ASPECT_16_9,
HDMI_PICTURE_ASPECT_64_27,
HDMI_PICTURE_ASPECT_256_135,
HDMI_PICTURE_ASPECT_RESERVED,
};
enum hdmi_active_aspect {
HDMI_ACTIVE_ASPECT_16_9_TOP = 2,
HDMI_ACTIVE_ASPECT_14_9_TOP = 3,
HDMI_ACTIVE_ASPECT_16_9_CENTER = 4,
HDMI_ACTIVE_ASPECT_PICTURE = 8,
HDMI_ACTIVE_ASPECT_4_3 = 9,
HDMI_ACTIVE_ASPECT_16_9 = 10,
HDMI_ACTIVE_ASPECT_14_9 = 11,
HDMI_ACTIVE_ASPECT_4_3_SP_14_9 = 13,
HDMI_ACTIVE_ASPECT_16_9_SP_14_9 = 14,
HDMI_ACTIVE_ASPECT_16_9_SP_4_3 = 15,
};
enum hdmi_extended_colorimetry {
HDMI_EXTENDED_COLORIMETRY_XV_YCC_601,
HDMI_EXTENDED_COLORIMETRY_XV_YCC_709,
HDMI_EXTENDED_COLORIMETRY_S_YCC_601,
HDMI_EXTENDED_COLORIMETRY_OPYCC_601,
HDMI_EXTENDED_COLORIMETRY_OPRGB,
/* The following EC values are only defined in CEA-861-F. */
HDMI_EXTENDED_COLORIMETRY_BT2020_CONST_LUM,
HDMI_EXTENDED_COLORIMETRY_BT2020,
HDMI_EXTENDED_COLORIMETRY_RESERVED,
};
enum hdmi_quantization_range {
HDMI_QUANTIZATION_RANGE_DEFAULT,
HDMI_QUANTIZATION_RANGE_LIMITED,
HDMI_QUANTIZATION_RANGE_FULL,
HDMI_QUANTIZATION_RANGE_RESERVED,
};
/* non-uniform picture scaling */
enum hdmi_nups {
HDMI_NUPS_UNKNOWN,
HDMI_NUPS_HORIZONTAL,
HDMI_NUPS_VERTICAL,
HDMI_NUPS_BOTH,
};
enum hdmi_ycc_quantization_range {
HDMI_YCC_QUANTIZATION_RANGE_LIMITED,
HDMI_YCC_QUANTIZATION_RANGE_FULL,
};
enum hdmi_content_type {
HDMI_CONTENT_TYPE_GRAPHICS,
HDMI_CONTENT_TYPE_PHOTO,
HDMI_CONTENT_TYPE_CINEMA,
HDMI_CONTENT_TYPE_GAME,
};
enum hdmi_metadata_type {
HDMI_STATIC_METADATA_TYPE1 = 0,
};
enum hdmi_eotf {
HDMI_EOTF_TRADITIONAL_GAMMA_SDR,
HDMI_EOTF_TRADITIONAL_GAMMA_HDR,
HDMI_EOTF_SMPTE_ST2084,
HDMI_EOTF_BT_2100_HLG,
};
struct hdmi_avi_infoframe {
enum hdmi_infoframe_type type;
unsigned char version;
unsigned char length;
Merge DRM changes from upstream v6.4..v6.5 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v6.5 RHEL-1350 JIRA: https://issues.redhat.com/browse/RHEL-1350 Conflicts: drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c drivers/gpu/drm/bridge/tc358768.c drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c drivers/gpu/drm/i915/gt/uc/intel_uc.c drivers/gpu/drm/vkms/vkms_composer.c drivers/gpu/drm/vkms/vkms_formats.c Conflict resolution: diff --cc drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index e1d699992cef,ec1ec08d4058..a4086ef92924 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c @@@ -2378,8 -2471,7 +2471,11 @@@ int amdgpu_vm_ioctl(struct drm_device * union drm_amdgpu_vm *args = data; struct amdgpu_device *adev = drm_to_adev(dev); struct amdgpu_fpriv *fpriv = filp->driver_priv; - int r; + ++ /* No valid flags defined yet */ ++ if (args->in.flags) ++ return -EINVAL; + /* No valid flags defined yet */ if (args->in.flags) return -EINVAL; diff --cc drivers/gpu/drm/amd/amdkfd/kfd_migrate.c index fe2752ec67f7,709ac885ca6d..e2829454b7c7 --- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c @@@ -985,11 -991,11 +989,11 @@@ static const struct dev_pagemap_ops svm /* Each VRAM page uses sizeof(struct page) on system memory */ #define SVM_HMM_PAGE_STRUCT_SIZE(size) ((size)/PAGE_SIZE * sizeof(struct page)) - int svm_migrate_init(struct amdgpu_device *adev) + int kgd2kfd_init_zone_device(struct amdgpu_device *adev) { - struct kfd_dev *kfddev = adev->kfd.dev; + struct amdgpu_kfd_dev *kfddev = &adev->kfd; struct dev_pagemap *pgmap; - struct resource *res = NULL; + struct resource *res; unsigned long size; void *r; diff --cc drivers/gpu/drm/i915/display/intel_crtc.c index 72d90edd9518,182c6dd64f47..e7083689cf4d --- a/drivers/gpu/drm/i915/display/intel_crtc.c +++ b/drivers/gpu/drm/i915/display/intel_crtc.c @@@ -696,10 -703,10 +707,11 @@@ void intel_pipe_update_end(struct intel * FIXME Should be synchronized with the start of vblank somehow... */ if (new_crtc_state->seamless_m_n && intel_crtc_needs_fastset(new_crtc_state)) - intel_crtc_update_active_timings(new_crtc_state); + intel_crtc_update_active_timings(new_crtc_state, + new_crtc_state->vrr.enable); - local_irq_enable(); + if (!IS_ENABLED(CONFIG_PREEMPT_RT)) + local_irq_enable(); if (intel_vgpu_active(dev_priv)) return; diff --cc drivers/gpu/drm/i915/gt/intel_lrc.c index 5f75df549e75,9477c2422321..d26e24193a37 --- a/drivers/gpu/drm/i915/gt/intel_lrc.c +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c @@@ -1364,19 -1364,14 +1364,18 @@@ gen12_emit_indirect_ctx_rcs(const struc IS_DG2_G11(ce->engine->i915)) cs = gen8_emit_pipe_control(cs, PIPE_CONTROL_INSTRUCTION_CACHE_INVALIDATE, 0); - /* hsdes: 1809175790 */ - if (!HAS_FLAT_CCS(ce->engine->i915)) - cs = gen12_emit_aux_table_inv(ce->engine->gt, - cs, GEN12_GFX_CCS_AUX_NV); + cs = gen12_emit_aux_table_inv(ce->engine, cs); /* Wa_16014892111 */ - if (IS_DG2(ce->engine->i915)) + if (IS_MTL_GRAPHICS_STEP(ce->engine->i915, M, STEP_A0, STEP_B0) || + IS_MTL_GRAPHICS_STEP(ce->engine->i915, P, STEP_A0, STEP_B0) || + IS_DG2(ce->engine->i915)) cs = dg2_emit_draw_watermark_setting(cs); + /* Wa_16014892111 */ + if (IS_DG2(ce->engine->i915)) + cs = dg2_emit_draw_watermark_setting(cs); + return cs; } diff --cc drivers/gpu/drm/i915/gt/uc/intel_huc.c index 967eee5dc31b,fa70defcb5b2..9cc33c117883 --- a/drivers/gpu/drm/i915/gt/uc/intel_huc.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_huc.c @@@ -293,25 -296,24 +296,35 @@@ void intel_huc_init_early(struct intel_ } if (GRAPHICS_VER(i915) >= 11) { - huc->status.reg = GEN11_HUC_KERNEL_LOAD_INFO; - huc->status.mask = HUC_LOAD_SUCCESSFUL; - huc->status.value = HUC_LOAD_SUCCESSFUL; + huc->status[INTEL_HUC_AUTH_BY_GUC].reg = GEN11_HUC_KERNEL_LOAD_INFO; + huc->status[INTEL_HUC_AUTH_BY_GUC].mask = HUC_LOAD_SUCCESSFUL; + huc->status[INTEL_HUC_AUTH_BY_GUC].value = HUC_LOAD_SUCCESSFUL; + } else { + huc->status[INTEL_HUC_AUTH_BY_GUC].reg = HUC_STATUS2; + huc->status[INTEL_HUC_AUTH_BY_GUC].mask = HUC_FW_VERIFIED; + huc->status[INTEL_HUC_AUTH_BY_GUC].value = HUC_FW_VERIFIED; + } + + if (IS_DG2(i915)) { + huc->status[INTEL_HUC_AUTH_BY_GSC].reg = GEN11_HUC_KERNEL_LOAD_INFO; + huc->status[INTEL_HUC_AUTH_BY_GSC].mask = HUC_LOAD_SUCCESSFUL; + huc->status[INTEL_HUC_AUTH_BY_GSC].value = HUC_LOAD_SUCCESSFUL; } else { - huc->status.reg = HUC_STATUS2; - huc->status.mask = HUC_FW_VERIFIED; - huc->status.value = HUC_FW_VERIFIED; + huc->status[INTEL_HUC_AUTH_BY_GSC].reg = HECI_FWSTS5(MTL_GSC_HECI1_BASE); + huc->status[INTEL_HUC_AUTH_BY_GSC].mask = HECI_FWSTS5_HUC_AUTH_DONE; + huc->status[INTEL_HUC_AUTH_BY_GSC].value = HECI_FWSTS5_HUC_AUTH_DONE; } + + /* + * Initialize fence to be complete as this is expected to be complete + * unless there is a delayed HuC reload in progress. + */ + i915_sw_fence_init(&huc->delayed_load.fence, + sw_fence_dummy_notify); + i915_sw_fence_commit(&huc->delayed_load.fence); + + hrtimer_init(&huc->delayed_load.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + huc->delayed_load.timer.function = huc_delayed_load_timer_callback; } #define HUC_LOAD_MODE_STRING(x) (x ? "GSC" : "legacy") diff --cc drivers/gpu/drm/vkms/vkms_formats.c index b11342026485,5945da0beba6..02bad87a75c2 --- a/drivers/gpu/drm/vkms/vkms_formats.c +++ b/drivers/gpu/drm/vkms/vkms_formats.c @@@ -109,8 -118,15 +118,16 @@@ void vkms_compose_row(struct line_buffe u8 *src_pixels = get_packed_src_addr(frame_info, y); int limit = min_t(size_t, drm_rect_width(&frame_info->dst), stage_buffer->n_pixels); - for (size_t x = 0; x < limit; x++, src_pixels += frame_info->cpp) - plane->pixel_read(src_pixels, &out_pixels[x]); + for (size_t x = 0; x < limit; x++, src_pixels += frame_info->cpp) { + int x_pos = get_x_position(frame_info, limit, x); + + if (drm_rotation_90_or_270(frame_info->rotation)) + src_pixels = get_packed_src_addr(frame_info, x + frame_info->rotated.y1) + + frame_info->cpp * y; + + plane->pixel_read(src_pixels, &out_pixels[x_pos]); + } } /* Commit list: commit ddb24fc525ddaf35130d96478f3f18682a9d5926 commit ddb78a51fac65e8db2316ded59e27ab621aea856 commit eaee1c08586395182e0004b3512a2f83570ea461 commit 63b685efaa4d6b9db388857a2e6f5f5f11454f8d commit e24e6d695377ca70008ffc39695c3975b3e177b6 commit 16fc9c08f0ec7b1c95f1ea4a16097acdb3fc943d commit 404c3acda4b65924c05bc63242e94f954f84c165 commit 57b5482bff9e4f60069a8c0de91bb397612ce059 commit ec280042094c3f700d7321e7163591c6eac72274 commit 1dcd7aac31842028beb5fa2531fd54ce0d588b17 commit 68f5f78d0fe08f277a3aea9ad28508a7f243de6a commit e0980b8d82d1306251bcd67b693e008bb6c89512 commit e006df050606785aa7d04cd47f913d9c6ce4669d commit 01c2be8e1b97ee4891d1e1ffb7758897d441bb3c commit b6f4b3a1474d8bed9fad2b4d681368710375bbe9 commit 37c8cabfcc5ce2c06baf0a2d0176043b0b256e49 commit d6fff836c0e0502a569811c7708aed0762e04337 commit ea68a3e9d14e9e0bf017d178fb4bd53b6deb1482 commit b90b044c64f669cb20919fb5e5673933de59c653 commit 1bf3836383e6957ac848ee81eb691820c862b3d6 commit 99cc528ebe923d04767e9979665a0824727376ba commit 17e05aeb3b987a17b2ee5185264bec5db1d0c746 commit 6a98560755636b07ca54bf9cea6435b8e82b57d5 commit b25e07419fee6e3be07e58cc64f50e11228987d3 commit fa9e4fce52ec4ee45ddfc6747ecb2bc8856c4753 commit ecaeecea9263496ecbb287aac6545e8b3cd9257d commit 99cfbed19d06dfe9c9929c436b5a768231c05b70 commit 1af1d18825d3a5d36b6a3e5049998c3f09321145 commit 76ec69272195317080c16b970d23aebdaf192883 commit e39c76b2160bbd005587f978d29603ef790aefcd commit a2da67028cd05516343533c1609fcaf037237fed commit 435db526a68b6454a882eae7a3768c516d4b540e commit e13b3f65af719e79046df2b1da6599eb387752e0 commit d7c281eecec0699449ca9ecfff82fe056dddb488 commit 446a20c9ba622bb531f1705eab88b64d478ee434 commit 7cb3eb334b8c2a06f780abcf38bffbd9efa4cec1 commit a42e65f33c38e3b0191cf6a1bc8ebb6c8289127d commit 51390cc0e00a378b7c152bb6f63efc0a01b59d20 commit ea8af87ae6be578b3b633ad6aa9188b0ce4cd7ee commit babde06db8858a4fdb4ab3c64e442885487dbd8c commit 23ef61946374a9ba52ae051cbc95e82f054ea16b commit 5836bc5f8d3113ccdda2a10fb86344a9f03698ca commit b66a8abaa48accd3d4b93c1820bbd995fa26ed78 commit 764739d8cef28a3c926bb58a63894a162d9997a2 commit adfbae9ffe339eed08d54a4eb87c93f4b35f214b commit 3b6692357f70498f617ea1b31a0378070a0acf1c commit ebb7619d3ac85d7aae0a5e8d7038d32211ca7dba commit e920aabf8348de4160301b029b13d72eae0531d5 commit 8bfbdadce85c4c51689da10f39c805a7106d4567 commit 80e993988b97fe794f3ec2be6db05fe30f9353c3 commit 62aeaeaa1b267c5149abee6b45967a5df3feed58 commit 5fbcc6708fe32ef80122cd2a59ddca9d18b24d6e commit 116b1c5a364bcbdc40be64d4f3ec9dbc32e264dd commit 7f6f26d7adee150e09d7537acc6d6894c27c0b7a commit e28f6966ac8021d8b677fe3839361db8c9344206 commit ae52dd7d6d933511c90d129addfc629feff147b5 commit 77316e7552137e1ed1ac3d719be844f36756eb1c commit ff2c80be1a002ae268ee78e3cf183b89c1aef77c commit 15e4f0b541d4c0b2144955111a1b37b5bfabbf63 commit 40053823baadce4e300cb011ac4e3d16be93bf6a commit 86a1758d751de03e8f3d8810fe22eaf571798871 commit 59c6106e274dbafd9d25357585ae5ede4b6673dd commit 3183b9ebad7d3f1d711f152222577116ca08b299 commit cde4bd87863124fb6feee35b7f73552f5e75ea61 commit 62bb6b4920ce9d9a7cc365c4e1cc13134cd1cc24 commit aecb583cb997935fb4f4a667a8013469528a8d53 commit 1eae88fa7b56b3b02d0e003a737fc31d71f3f486 commit 4f048de28b90abefff2044f450e882576eb746e9 commit 3778724bec53a3585cde6aed8c75ae3f085c3dcb commit e1b570db8687c993e7a87516387a3bb3b5e63ac6 commit df8133d0c3e53e98df3c78c30f31530f580f1bce commit 6ef481d45f8b37dc9cca11d7126bd2c99e8a0943 commit 5149545dbcbb15105312014201b9c0aa859c6044 commit 41239aa4f751fbc39481a4af726faa347a26da83 commit 488c1ce6a8f3d46e20440b2e240e096a20259fcc commit 8a89e1323d7dc90fa551cf2167ab838013641788 commit 4aa35a0130d6b8afbefc9ef530a521fb0fb9b8e1 commit 088248f4b0ee089cb78a318411d23566e3737dd1 commit d1f3b5e92cbab10b4710ba33e20b264c852d19aa commit 40d06b0fae915ec8bbfbde69ee1cfb2d9a2b7a53 commit d28cdc43b43b77287d7839ef1b94fdaa24d2a444 commit cfe5bdfb27fa234505e96f7775d32415ed705f94 commit a823c5a825cf9e49b2e20011cd87d93f949c2a27 commit b8fe56375f78835db47565d91ea9d21767fe3c08 commit e4dfd94d5e3851df607b26ab5b20ad8d94f5ccff commit 9b035d089086deb75d6664b26d36e35853e58ce9 commit 6f0ef80a00adfd51be22b6ab84acd48de1d3938d commit e101bf95ea87ccc03ac2f48dfc0757c6364ff3c7 commit 751e17147953bc30036b8fe0eaaf780b6951404c commit e0a77e09c707cf89317de00f87b94b1168f27acd commit d63e31f66892f67d8f1e279c57c4c0aee789fc66 commit 4ad3ee5ccc77aa3f9d702f7b9ad4d9cfeca6c443 commit 785b250e33c7b1a9dcdb262eac691cd33ac7a53a commit 72529b683c6d94fa87f3a42efd9b92ccfb8def41 commit c0162a05bd31129e29a23d4bd1d2321c9663d5bc commit 3cfd03b79425c8c9e10d15434f0b017249372609 commit d11dfbecc3feed5916bbe6c10942d9db61a9e2de commit c4edb01374685a3ea195c7d31459448cabe5a34e commit e97cc04fe0fb33e489583dff79f6b1d6919fcc66 commit 522b9a5d5852f99e51fbc460054dc8af3b4b5b30 commit cdff36a0217aadf5cbc167893ad1c0da869619cb commit e3416e872f84086667df21daf166506fab97358d commit 4d5f872dbc755114628c236e17421629ec522203 commit 6bfe9a23a8d6c7292d520747859a515fd429518d commit 7052a801d6bc8cd203e1708313e4996630208a6e commit 9fc6e4b36f2a748c853512d5ce4c8c4b98941c75 commit d062de7b68f27546a45c063b046b66c0a73633db commit 276641775848020c6e84166d1bc885e028a04680 commit 21fc0ff38f571debdba6aaff944addb50f49a7f7 commit ec341e0f4a02040ee8d6ef156f8bf02c5aa5c511 commit f0c5f9ebbc4cfd6b9611b8a5d9fb208c5f60e3e6 commit a6c0c9f56197fcb3418be82a7d9f9952be1b5598 commit 7ab269d54813e03eec8a5acc415b2aef55aaf916 commit bddb55ccbdc20dd7fd526c8dfb13f695637bf7b1 commit 499e4b1c722e0e2ca40c56342b766e95f6c31f4a commit c18842a2e81a3e3d5c7401f061d7887b422aeebc commit 08c73e896836be1a1875c612c25a9ad81893ff98 commit 2a66c0c9d20238812172693b5bef28c6c659eff4 commit 0c316556d124916e1dc2be171b3414b764972802 commit cd8f067a46d34dee3188da184912ae3d64d98444 commit 3306ba4b60b2f3d9ac6bddc587a4d702e1ba2224 commit 128c1ca0303fe764a4cde5f761e72810d9e40b6e commit 97041ed37718dc9ba30aa23ca74093dc93ac89fb commit c30ddcece3a0a86853862a7d92678a79525ca1fb commit 4f18b9a6711adbc7c76993c734a94ee3f5c61791 commit 7f102a906681cddb8ababe53e0caa40a17f4cd11 commit 1fa8d710573f02ae9118bc5f53e7ede09d6920da commit 94344e62a9ce8abcf681390f9822a7b075cf98e2 commit 20c3dffdccbd494e0dd631d1660aeecbff6775f2 commit 277bd3371f11400d5b02df54f057569be4b10cea commit be697aa3a78ef83a6b8d49e1f0671a002e502cd0 commit c38be07035bcb31274ce5f85e3b249f691c5b8db commit def799c6596d078112095c24c25e162cb5102d90 commit 86301129698be52f8398f92ea8564168f6bfcae1 commit 5aa998baab3360d0f1b93d6aff3df924045f956c commit 6f917fdc934518401ff2e166e6db1f6ac1ef1078 commit ec08571aca7c5e6bf2d1820db9c8aaa104eb9b68 commit d51ac6d0a23caf1005cb640f8533161c5d2dd0c0 commit 86b20703e4c5a3c39891def0a68e7438aeca9db9 commit 96c7c2f4d5bd94b15fe63448c087f01607b56f4a commit 27ac123b454417ea92d77c13a5d94655f53b759c commit 476f62b8a597202a7c97bf50a7f6ece0925ce6f0 commit a6704f4a5452950e7ff22cab0cff23477dbdf0e0 commit a347279dec1eb68e995f864ae1fd41ab57cbcd21 commit 0c29efa23f5c2f51b744856200af0cff3e287e9e commit 88c487938414c519fdb1c7e55211d8778d3367d0 commit 0c8d9870177a2d7c9e88a2e79dc20950ec84328f commit 514b8a79aa85d800458cfb7909ed0e1a1c1bffa2 commit c91acda3a380bcaf41b67c8fbab668ef8ddf91c3 commit 3bece767dab2ffbd6f77be1a0ceb3e214f0144f8 commit ba1fb317bbcb67d8024f0e83e509e8c57da35ac5 commit b13604c0ff26ecde5f708ef5e1fd233f8e89e1f6 commit 8902a55dfcff7add5d8cc77781ecc311fba8855a commit 691248d4135fe3fae64b4ee0676bc96a7fd6950c commit 8637e1c84c5f2c3ea4a1e145ca226fef90a148a2 commit 8976b18249407df8bf6ea18ecae0640a15341a50 commit 597421a806c7485b91ee4cf7ec2ce3618223dc92 commit 08df6d30c1022e738dd26e732a36f3f7642594d2 commit e27525cc805548eaaa9d0cb8e8f0f181e9cd5390 commit 75d020db38b8ec325fe5a28336646e93eac3b033 commit 12de65d9c6e3b7b0b05ec03cc19669268ee1318f commit 3d0d33363cdf4bdc41227cccc28848d6b2fc2998 commit 3df3c589cc8f4ff1f08302029d6ddef96ea1d449 commit 1d9582dc2b5f5c82dc9471c8d97c0712d5a04c5c commit 2624ee66359b24062b6e8f6216c4ff2a778237a6 commit 34c1aeb579ddd36392e18e2fc354db441556811e commit 2590ef92cdff017ac98012593db54c4d5b96388d commit da57e3d6ed433bbfc52730aec111afb6856f9441 commit 4fb5f569055ccead1807139791b368b31f1e7301 commit a82e0b6fb2cb369672ff9ffb383d7d402aa54163 commit 79b6e265d92092b49252f546e1a0f63ae8851f83 commit 224d3df954c184826657bbacd2a562dc99478cb3 commit 66daccde429611530db82605c197be01adadb389 commit 4e7f84ec068cec6a9a72fe0f558e0ae4cf765c51 commit 20dfae3ca28ff874e506c48704eed2a465a82585 commit bfa010f608491036327db20aad1d15e28da0189e commit 6152aec1ddb40620cd8d2b36b45171c2d1bd82d1 commit b0dc10428460ac2408cf5f82fc3562e9e57324e1 commit 01382501509871d0799bab6bd412c228486af5bf commit 8eba72053c682d8ae652bed4a62546239e58390b commit 5c65a4b8e65e3247f86ec5152da138500edcf50c commit 47fc644f801e4414753a9b7e87ed41f991cd68c3 commit 47659738fbd2f06730635a487605002ea9b11f3d commit 948ca54c424be395402624ca0e21ad5ddf77cb6a commit 8fa33bd8d327ae2f9b602cd883f32efc4662bea0 commit 8b6a6aa5d6d2be6a0669a29deb89184aaa0bad65 commit 7abac457ba75e3c6f6468036ad6f424bc56b2750 commit 92d1fe5954dc28c4e0260b730dd79d2acfdfa29f commit a1f1fecd04f0b9ef600898c7f9b2094504127fd7 commit 974ce18160bb16c8addf6889fff977564404b87b commit 2c30f85551211a48f7be57499a6fcb4ad00875da commit 44243719117171e947317a1aca4625c317f7dcb0 commit 05ffbdf4dbd55b9526535bddddf40dafdc2b27d4 commit 0244b0f7d5ac2b6a8d5716f6dd2fb2631f13a3b5 commit 72a9be2f444a9fd4ab34e6329fa1889dbd3a7ef3 commit 4335077a76095ff75dc0ffb031aeae93f9f5e80f commit 3ac73f1ef2b403048c98fdf0f29ba32571efb849 commit 255ce8f7c169fa385ad04f01c7babab5f636a3ce commit 58e67bb3c131da5ee14e4842b08e53f4888dce0a commit 710cc1e7cd461446a9325c9bd1e9a54daa462952 commit 4f63b7a59926eb7fb50091e796170a10a8ef4091 commit f828b681d0cd566f86351c0b913e6cb6ed8c7b9c commit 87c2213e85bd81e4a9a4d0880c256568794ae388 commit 053065a43ca6466575d9d3c9110e305fdcf303d3 commit 4371fa7795dabb422171de5e8d9fe7aa3e2edb86 commit 0026c273e68ee82a7843f5de26147357bc7e6551 commit 8f7f1b020ea641f21e7c88db55170a4d15834668 commit 7787af256504b13f0ab6c311ed7870a895b762b8 commit 1993f598998d7419f5c9fa8459f4919cf5f3643e commit 55b24786b74863b8f10e4d262e642749911cb3bb commit 6b99658c93ce0ab84c4682a22df245ddefb0ebc5 commit b76c0deef6273609c02ed5053209f6397cd1b0fb commit faca6aaa4838c3c234caa619d3c7d1f09da0d303 commit 64e22551b64c694de428a9d3e210587df2831ef3 commit 66ca1d8f222bdb1c9470e44131e12d753622ab08 commit 539f9ee4b52a8bec95ff064e22dd2fb1e258e818 commit 70102d77ff22dd88a0111b1c3bac5099ac5d0425 commit f452cbd326dfa57c6f4ca8bc37879bf189f29cff commit 96c3161926c6aa81365f074e9c408ca31b7ca756 commit 1f01f2247e3c4ed55c96afccd0072cd31793c604 commit 881e2a9cc11fb53b1de10d951a11a69d23035bbf commit b5d88ec0ee3d0c75d2eb515efc335d031134bd75 commit 8356b97906503a02125c8d03c9b88a61ea46a05a commit 322d716a3e8a74fb75cd0f657647be4df253fd2f commit 89d8445e4f5cfaf5c017c0bafb05f8bbaac59bf9 commit 31d7c3a4fc3d312a0646990767647925d5bde540 commit b418e7193965a5f064a0e422ccf25e6203f265b5 commit 043dc33f443fd7abaf3fe076897503ce3d5dbc26 commit ac9287055ff16a092416c76a19006764e4c6a978 commit 46c1282e5a31c33a6973affbcc765eac1f3f5d1c commit 38be7796f310cd2bc84dcc40c4fd1964df39a5b0 commit edd9038000352ba846cba9dfb84d8c397c3b6499 commit 0db0c0379d15cd811214bdb631a0b6bdcdd22c84 commit 02527099ddc74244b9d94c93ec54e123fcee5899 commit 1ba91b54a9051205c2110ed43a7dc5650d49ca0e commit 550e5d23f14784e2a625c25fe0c9d498589c9256 commit 9fa8cc0c444562fa19e20ca20f1c70e15b9d8c13 commit 3af470cbcc9f40e47fe9b16882f60cd20b438095 commit 8a93c691248e7ff2b3944107a1ead2671b6854f2 commit b185c31847856d9fa3008f727a824db163df0801 commit 445d85e3c1dfd8c45b24be6f1527f1e117256d0e commit 93aac179a44be000aa8a025963011c752c23d92e commit 267e2d8e8e60ed59e74cf888f6b74bd5202e7384 commit 0ba4a784a14592abed41873e339eab78ceb6e230 commit 278d3de6754e778cb676b7e1b10782eff1971010 commit 8f3589bb6fcea397775398cba4fbcc46829a60ed commit ee7be8f3de1ccc9665281fe996f9b6d45191ec1a commit 9ba90d760e9354c124fa9bbea08017d96699a82c commit b058e3999021e04cd16d1e487732e20ad1f4b4f6 commit b5389eca7b39026452dfc1d2cd5b05448c631298 commit 5e9252d8415f50095c854c85cf9ebcc894e9ac0d commit 7a1187eab0111ac52ec216f2c18cb7822fec4a4c commit 1068e987ad0be83a109147fe7fa0891700e8d80e commit f477c7b5ec3e4ef87606671b340abf3bdb0cccff commit 469a62938a45ef382c9cb7b9fec6c6c1fcd781c0 commit 9c25ab167df412a5474dedfd0e7743e76bc89cbe commit c8cefb99fc811304fff9590677994531ff0ac992 commit 87f0c16e0eeb672fb888b4e173edff0252e02757 commit 1938bcdc4b530d6413e03f238c2df56f99f17220 commit 5a096b73c8fed3a9987ba15378285df360e2284b commit 612c5ad50c3e5505e674b7cc50bf6527bc0adee6 commit f38129bb081758176dd78304faaee95007fb8838 commit 179661ad45cb18ba7702ebafde5f22aea47be5e0 commit b91075866e58e6b073689958f246834ad0b2c79c commit 341ad0e8e254267704e0b87e35ad23aba5c02359 commit a161b6dba6e0e8132921a6b948d311cdf67f3476 commit cec5ccef85bd0128cf895612de54a9d21d2015d0 commit bca774c387548421efb5b533434b8408be0517b3 commit e991b5244d89096943af7dcd506faecb57b9377d commit 47d8b3029684ce257e23022286b0861f72ac3f03 commit 80ab31799002166ac7c660bacfbff4f85bc29107 commit a03f028542779fbdb0130b6a5e15445c94a859e8 commit bddc18913bd44adae5c828fd514d570f43ba1576 commit d81268ee1c1073471cf0e8adb0fc9d026b602c3b commit 1b44019a93e2bc6088d777b3d3072df5f40f9324 commit 655bd3b954cf18ae4e1ff69ebbf4a20b562f580b commit a7fa1537b791cfb2ea3895ac448ab1455a4405f8 commit 0602d59376d391c460925daa3f8ba2b286cdcb4b commit e0310564a7e31d7359a6831226aa9b559c6728a0 commit 0ed9208cb120086f1b600199c548f00544406fa5 commit fa83c12132f71302f7d4b02758dc0d46048d3f5f commit d59ce1ff8e6830fab60b688f33a89ef48c94b5d8 commit eee44c2903e5222632536f86ad5cf0ff9bbfc61b commit 99e7e3b60080d913ff2f94943f4af1f1b76a1c06 commit 55f9720dbf23ed640a51ea5564c22305efa8a467 commit c73bd1706c0cdb5627d312efdc656baf48e0247f commit 0be05a75de2916421e88e0d64b001984f54df0bd commit f0038cffa843697501c442eff4468e3ab37031f1 commit c5c51b2420625faa1f0e363f21dba1de53806ff7 commit 62618c7f117eedfd99b2f857885ed004d31df739 commit 929f527a7b70a5a7810f83c5e8941657413596c3 commit f968a25381acbe147c675fdd7a048f170e6cf44b commit f1f9e62737abc4b6481a9a814526bd3e2cfd4d2f commit ac50317e2659143bd1111b1785b5c0fa0ac1f6bf commit 237e7be0bf57c2dd36f074d3b03a3291db3b3abf commit 73fc3abcb79732c2c9d4745d61b6859f587f01a3 commit 7dee06bc0ff5ac7341ee3cde8161e58dc43dd9b0 commit c0f3faaf936b67e124e9159fb1223a689cf9e15e commit 6f0423b06a0cd55133bafb7a69fd2ac1ff7a6750 commit 4366750a0d2d587ae8335944d723eb43a6c0d94a commit dac6ce66db3e3bdb5dc66f6713929b125612ef01 commit ee9634282d875083b2a172f0181f5fe6be50c524 commit da3a99afd2575e744fe52cf661ce3f12feedd675 commit f60500f31e99fe5e641071d2ed4a8164a8050701 commit 5aa857db54ad2e963d65e234f7e4c183cd89c993 commit 1324680a80ebf6eaba112bd54efa19e23081797d commit 03877d621db082610c9b7602c6e8cd6ebcb75a8f commit 860cf3bd715b3455e1c708386e773a669a2350ee commit 725859b98a8eeb50c9a711b323e0cffc367873ea commit 629f59ade8fc399beee839cb81369510c9c982b6 commit b049132d61336f643d8faf2f6574b063667088cf commit 684ee005d670a1b6360ba53db24b808f7584c89b commit 44e36855bdb72cc2ade0153dce4a08a5b830a3a6 commit e4730ae44240ae1a2e247bfc7f916813567acb92 commit 8a91b29f1f50ce7742cdbe5cf11d17f128511f3f commit 67f2dd9f38abf4d994a5bc5131ce684e594d66a8 commit e1172b617a93c2133750c4ff586f20f46e1e42c0 commit 144c3f7b190981a659b8fe9179ddd1f46baadee7 commit 28487ecb96b0bd1ff27a3e8ae8bc027af6e448e1 commit 9570b039075192923d3bd26a7892a708eef1a483 commit 88629feedcc4678ac21991a1154477d1c1dca19f commit d7b7332c0e9901ec7e6e73ca75b6c4cd398d5aaf commit faa19ce89b0b2eb91c37e2c26b6be93e2e2cb47a commit 9c55105be0a78942328882224c23965483e578a9 commit 71ca9b87a72bdc1dbe434d25c97eb14be58b4e00 commit e798a3b30dcb729fa9b9dc88de00984dc1f5aa04 commit 1f5cf999bedcdff85f84b7dc4d780cbb515b6c2f commit 3a21c6b4298d9d0c99c8dee28edcf317d68cd93e commit f05e526e44cb11e70c5b7d8bb55d7e0c6fb10990 commit 1c519e0628f19e2790ddfa4cb512921047e8f65a commit 8802628237ac73bf5a6f878ea0cbd8a4c39a55a1 commit 7bc30374f84c5588c952e47248595b1c38d06906 commit 70b9933c09b8687edff5c2f833dc2a72c1b40362 commit 8b2a7394e51d6a49edeae8fc640b8c23a4ab649d commit e7b05d95cc1bfa1e61557358d936ebb33b0ae4be commit 8a9bf29546a13efd3ed7784b890c2534e995348f commit 31cc65b4c7e37eaf645be2d5fdcade56e3fdf8f2 commit 4883c804fc794dbd9f9668e73b3d266a52ae6c0c commit 33d233f5cf9b9f1ce8f38480c45317dc0eecafa2 commit ebb4e2b03acc3a9b58a8bc32b239e6af2166e84f commit 576032f2b3db7ed5994a165ca0e4b6808c637f0f commit 6ec91794ce4aad0e92a16028885a7b139fe363ae commit e62206682a2f51a8f4d37a204791e5e8ae4d9eab commit e971121350e72ff34a0c1d140127703cc2c085c2 commit 08272a5a41876af38209def142de272e580d446e commit 9d7fe94d35522115734b3c2c37cad3257c88c43b commit c6948d8c221a8a61ebeb69567fd1a6c820127b53 commit ceb0cc3b428825fefae0123d2061ad3e06e2a0f7 commit 1d5b09f8daf859247a1ea65b0d732a24d88980d8 commit 83ac5457998ed464032665375dea56da8776a861 commit 51f7008239de011370c5067bbba07f0207f06b72 commit 9d0e3cac3517942a6e00eeecfe583a98715edb16 commit a04d27cdafb1caf95e6dc15ac72374c36e38acad commit 68910c2a903d518b3f7386901cf0d6a053d1c028 commit 9cca0fe329599109ed69e3c9583a8c4287feaf9b commit 523156799441f2625d4acbb0ba0904128e06622e commit 5814227de13333463ace7146d2455ecabcc8e657 commit 1dc565764dc7a4b6477db0bc0202d26f74ad2a0e commit d41e14fabc16043664f153b89d3d5d26f7069ff7 commit 34682d6006ca31e8a4961104dba15d556db533b4 commit dafa65d185fa0e946e602b53cb7f9694b7584456 commit e541022b1ce2fe598b90cd96c88cf6fd2f7550d7 commit 75a8aeac2573ab258c53676eba9b3796ea691988 commit 6a4020b4c63911977aaf8047f904a300d15de739 commit ffd2e4bbea626d565b9817312b0fcfb382fecb88 commit f9cf811374f42fca31ac34aaf59ee2ae72b89879 commit ee18698e212b1659dd0850d7e2ae0f22e16ed3d3 commit 77a089328da791118af9692543a5eedc79eb5fd4 commit 3666aad8185af8d0ce164fd3c4974235417d6d0b commit bac7842cd179572e8e0fc2d7b5254e40c6e9e057 commit e4a5e4442a8065c6959e045c061de801d545226d commit 6b8bfff56b2140396fd28088ad2dca4463aef9c9 commit c354feb5895fe80fd3f896443015cf53d5cf98e8 commit edba77891b58a1f0626daf8598717b8efb307bc8 commit bef550c952a71df6a6e86b11bdac5b10dac29163 commit 760133d42f0adc92b8408ad5544c98f8aefbc75f commit b18f1ecaaf4aa8704a02de1accf8c94fa06f1ceb commit 8ddce13ae696bf40397eac7ba2e9003113f94030 commit b8e392245105b50706f18418054821e71e637288 commit 00b9dd061eb31c8619878f187e509eabbbdb681a commit 0da6bfe857ea9399498876cbe6ef428637b6e475 commit b9279e9b28bb8754495f66d70902fa35c8fa7f53 commit 4a9820343579f65635500d9f9b268ec6d07496e0 commit 1ce76fae2bc14dd776b0c237456d8bd117c0e617 commit cf7f8c671c830302bd382ac640591ee3d6381ad3 commit cd0755508d81736d026bc25647a89dfc79162d95 commit 04408952fe2aa60db266cfa8f6db22a6ff3e1971 commit 6a98a6e40fdf0e105b5f25a58641f30901acdb34 commit 5b8ff071b57e0a50a0e6eb8db55d159a68853f6b commit 6fa9df2b5e563674e0b22d740e27b0df8960ba1c commit 3312bb4ad09ca6423bd4a5b15a94588a8962fb8e commit ff32fcca64437f679a2bf1c0a19d5def389a18e2 commit dee23b2c9e3ff46d59c5d45e1436eceb878e7c9a commit 7e8ba34d357127e2c93f18123d09b5c817156512 commit 8bb7c7bca5b70f3cd22d95b4d36029295c4274f6 commit 413d2e2fd052c57e66ebce988882fb58d33966ab commit 9f8c1fe320e8014b1d2cd0d8bfcca299223f7604 commit 0cad796a226997e176c71bd4e04a3d426ba4fcc3 commit 5a0fc7a0df6b3525bf3b33fb27eb8d47f7826dc2 commit 3d7af6cfed6c2df11388b7ac0630ad8015f9e915 commit 2bea1d7c594dd0643db23a8131c689384d0e5d8c commit 5e352e32aec23570ea948f039e25faf9b9ba362b commit 9275277d53248d3f529d7ce66a6954241ae4d5cb commit 685282a3b39be5be000d28c8b88a3e0cae195104 commit d6bf74de0772e233f97a82cc4dad2ec14b14fb28 commit 5adacf19f6c3fa7d6119878246e9a253867e14c9 commit e5e1e6d28ebcc0fe52567b1301c23f05d4c79df7 commit dc9ac125d81faf4761574a9f613ebc8eb35717e1 commit 99afb7cc8c44578615200ea4806b183e1e35a81d commit d1da138f245d4fb46b21d2ddb19504a2831d813f commit 9e134ed720b6e69a5c857743daedd403101ca078 commit 41e65d8790bd96d1caa3cb136a57ac45a131e66d commit 6e4e9fbd5ba01eed13cb086ea645f8513370761d commit db2ce1ab0508cd95efb4be938a146472c56c9461 commit 8ba3ba992fc2e456f4211ac4dc80dcb7775e722f commit 6986f05b557bf1efea5bac8dbdffb7ee89d0cf77 commit 3631c363b7c1d203a84d35e1f3d76160d8bd1961 commit c7c12de893f808bd7c1215fe9056262295e5203b commit f2eb43f0b8c25e58b299ae2593d805c35c98f82f commit a44bebf6afa8114c1bf0f69f5623b7394737a0c8 commit fe735c34ef06a1d08218569370875967e337608f commit b8e6185bcf5cf41c0195d496bbfe48e5f0ffb3a6 commit 6b9bd7c35d32be464591ba704a80ab2db4f2ea4a commit 621b6783c73100067c844c3be0b254c2f350e8ec commit 0f1cb4d777281ca3360dbc8959befc488e0c327e commit fe7f4e8d496552f880d7368b482d2ccac33780b7 commit 812562b8d881ce6d33fed8052b3a10b718430fb5 commit 8b25320887d7feac98875546ea0f521628b745bb commit ab87f558dcfb2562c3497e89600dec798a446665 commit 08d8f43045af8589671d4462190d27765653cdf8 commit da38ba98645d789ddda2a584d40e2de00139e98b commit 2b874a027810d50b627408f51c59b9648f778a19 commit 4c4279a8d58d146dc39b150226ee974652de4eef commit 415beb1fa63cf06e3b696822e94f977171921a2a commit a6d82f1b7ada6154668f1b5ff751a845aa540637 commit e45c5f1ad76968798b62add0396f85d9838aaca2 commit 728cb3f061e2b3a002fd76d91c2449b1497b6640 commit 81d6b37b69b8b5d1a4c81d2e208b41888d4283df commit 7eeef32719f6af935a1554813e6bc206446339cd commit 0694cab1d5a425139d9cda08332f59fb79248ff3 commit 7ff9a17e372e5152a77ec657949a3c9250720fa4 commit db4069fcbdc5c8bc03424934a3395b39b71d9dc6 commit 3ad41442d7bf5b3af0de927e14ed92b39da68224 commit 26281d3597254546161fb5d1dce80e1111a282fe commit e826839e18b77edb9be622a505d34e883985df48 commit f48eab29028769bb83e5fc9ff0b0ece56b1ba5b2 commit 9031c6d4f78a1e801695d0c4d97724455c6e2a61 commit f45156ff18bae00ee56ed6aa2a937a8e93e56d7f commit 7e4460c34b011ae15a898256ad0682e3f34a94d1 commit 60ded7cc86f363161e37dc41c548b2ab3e1af5ce commit b61fad5f7e5d859d95a413c3a57f59d007951fa6 commit c598c335da420715670b1adac846e4f3ebd01e40 commit 519ce291168af247c7c0fd122c754b74bcf08117 commit 6197cff30df44e4db85fed545fecb7df00ff8cd0 commit f6eeea8d7097a82d1460537146dee670d5014f13 commit 788557fb23702dbd21767a69894a53c1aa58bb60 commit d705a8c73acbe523cb602228d411a73f288bf34c commit 1ad797597a80ebe1c62b12403460d71e215f417b commit 86634ba3dfc789497805da3d5774fcc1953cbe41 commit 9c3a985f88fa4de82bf4bda906095ce6444e9039 commit f47d6140b7a4c858d82d263e7577ff6fb5279a9c commit 6f22587c915c34a4ee02c314cfdb708b11b5eafb commit 615ed9ece01814a94fb544226cb3f4e03f06851d commit 25e7976db86bed5f1826bdd5c59e5be424a9d91f commit 5f12c8d0a761af5dda2e798b1af56ff967442b83 commit 1a365a2b24cda48ff8d441e91663a6c0ab1353a9 commit 33a86170888b7e4aa0cea94ebb9c67180139cea9 commit e072700869dd96405a9c3752d3741a79bca6e2e2 commit 3655c5900f4d49881ad09e3893e5f5516b06a9f1 commit cb7b04c83e9006c39af6d806761fc628573920e8 commit 234fcb978f61f53bc05c276f6204332fde2b4951 commit 25553494b275a1a4cf06e4a7aa4073817cb2b846 commit a8c4b36ecac1d71bfde8d1f64a30ce694c4fc44d commit 169219213c144abf0f2cc86886df218159dbe4b7 commit 2b470e5531f57c1b9bfa129cca0ee17a2ecd2183 commit 9ff6b5256de3843ee6a2ee91737554d96852963d commit 74fe874cf1407d4731f0a2c713d31ac78a5b32bd commit e3290f883127159e3aa7957f30bd4266602d403e commit 3b292112f075db4810a556c4538b772e655fd4e6 commit d54fbea3bbbe04cdc944db94eb11c8bda30438b8 commit 861601ff7f757f34f0584dc1f78ebb7a1f541e77 commit 6810bb390282bb75801832f31d088236503fee89 commit 937859485aefed1d9df72feb6ea74a84ff5cfa46 commit 74629c49e66cc6d36c46ac4e3f059780873ceedf commit 504e72ed3a1b1c0d4450712a42ae6070d3a05a8e commit 79802863a01999bb90c790f8fbc80c5c2f9c8fea commit cf0c4bc9e4e132b1992548ca8db30ec328b45403 commit a644fde77ff73ee54970c0fc5a64cf7624c8b5b1 commit e367d3c45158ba34bb684227d87c52d8d840fd67 commit 08322dabb5cbce75e210d8df4774fc078ed7161c commit da5d51672874936c08810e63d6dfc670263d5e15 commit b319cc594e666061b22331da654606b92730343a commit bc4be0a38b63b6d4d00a58b10e164f56049be2c2 commit 906bd0fb137ffc361b3ce0d0db07f288db5582ea commit 0fbcf57077c47b444e91b9ce8a243e6f7f53693d commit aa25aacc3e3d1367d6674763a636a9fd5ffd12da commit 1464e48d69ab7a50a377c9d39f5e5eb3cee2722e commit 37cee4876a45a5c3da79a83d34ed4f3c68548aef commit 7a2280e8dcd2f1f436db9631287c0b21cf6a92b0 commit 6a038f0183dd5d3e289f6c1fe6962de9b31f8fd2 commit 5565a8e1a09a3ed2ac438a9e4f4c84c11037611d commit 9a2cb1b31c040e2f1b313e2f7921f0f5e6b66d82 commit 05aa8e0135094ae3d1e6837b5457a740266d7cfc commit 5af5169d758275490ab00e209a09dc1d6b85e535 commit 3f09a0cd4ea3b9d34495450d686227d48e7ec648 commit 376c25f8ca47084c4f0aff0f14684780756ccef4 commit 686b21b5f6ca2f8a716f9a4ade07246dbfb2713e commit 18e0deeed8c80d8ec0adfff3312252028739ce52 commit 69d439818fe501e8c9e50d963a53cb596e36f9f7 commit 12e6f6dc78e4f4a418648fb1a9c0cd2ae9b3430b commit 95c08508e237ba2444786581bfcc7df1ff54c35b commit abd686b8c38a094631884aa7b8cb04cc32b6608a commit 0c14d3130654fe459fca3067d2d4317fc607bc71 commit dd9e329af7236e34c566d3705ea32a63069b9b13 commit b8887e796e06b1de4db899f49d531d220f94f393 commit 1a56fcf08ae463a4564d111356091b2bdb6c7bce commit a617b33f7e513f25becf843bc97f8f1658c16337 commit 54f1a83c72250b182fa7722b0c5f6eb5e769598d commit 33d8d14c83bf67aa0d262961a6fda9c40f3c1052 commit 171b3b1e0f8b8c894f2388e1cf765a56f831ee5e commit 89691775f5735fca9dc40e119edcbb52a25b9612 commit bb0e13b9e223b218c9f242f8d340a332b4381042 commit 410bb21319f69c2ec28aeafe530d00ed2f6a1c54 commit f24b49550814fdee4a98b9552e35e243ccafd4a8 commit 35c812050ebdfe5ce576cf04d1d43d02dc2dfe19 commit 08264f85c5c05ecc38d409c84d48cfb00ccd3bc4 commit d9ce4e430790ba4f45e5febd7b4bd87b0f23563e commit 2587c63aaaf47f6f4ea9d90047910534a3ecf432 commit 78776086371bf8aba4314a52a46c52d946984c61 commit 47d56cadb9e28da5b1bc5bad7e15120310aa118b commit 992b8fe106abb6fe4a1583891e686c6aaa70f70e commit 7f09a3a09fb7e8a809a2eeef2b6b0c3e4f54cd52 commit 85d712f033d23bb56a373e29465470c036532d46 commit 11696c5e89245a1d360f75be3dfc4960b25a265a commit 5945d8b9a8e2501b0046ec34b12ef9c115bd77e6 commit edfd93e60bf29668a84cbb7ada848060a47cb940 commit d9911020ca0e1354b4169b5bd8dea9ff123253a4 commit a5606b94cd3d843b424a01e061dd0cadbcb0bb8c commit 332af828ce78f9c49c65ff35b9fe171060c9d045 commit 72a597aed1d9eb9ce21f68e4284ef3598d67cda9 commit 401e6cd974a708d4c191fda3bdacd6a67c5b30bf commit 5c8ec987997ab444df18813e0a3f565f366d05d1 commit 3e36c490698660ba4fa7cedfab03f3ed81a07192 commit e2a9f0a32464f435dbdb190ff7dbf09745703b60 commit 99304fd0050314a0c998c28300393ec574998db9 commit 6eb6b6f0a012993070b26dacb5ea1ff5fc233c18 commit 2ce977df10c179138e2723b25c2d2c055a3e3cc6 commit 88e9664434c994e97a9f6f8cdd1535495c660cea commit 84596e1ab09a2a2d4d4898444c01ca08b64cb7bd commit 09a36015d9a0940214c080f95afc605c47648bbd commit ab12902528f414cbb68d0da2b0d518b0ef10e696 commit 8ed0753b527dc00e759ec1e9e46c0ce9240c0f49 commit 33675759a5fa150fb2815089fefe8e5d039354a6 commit 7fca1dd909b3c1a0d7f2478fa939880d7b885491 commit 6ebf23bf5ea3ba541cced9d7dee782c62f613f9b commit 859cc65f4d97e23cc4388f6e3bc12f6dadef4aaa commit e1d49d763eaadce0332add0d60e5a73eaa08d8fe commit c51b36207c04bad501ddd47a3d3fe0dbfd611474 commit c6baad68d4e9e5c4c085045c70b99352d4825e05 commit 43049f17b5262826ef64a19762a096782398ef8f commit 3355f4ee561da6065cc756bf54a3f8bb556889df commit 533950d32d292cc4d0cef5b85af57948b8dcb11a commit f4a0659f823e5a828ea2f45b4849ea8e2dd2984c commit 29c6df0d942454cb43334cf0e36de068f4124b94 commit 1bc2ef065f13043bbefc927e6dc99c82b56ec037 commit 8716a6473e6c50a5c335f6fa7d6b73779ecf6972 commit 4722e2ebe6f2168309b285977c5c96baf910c57b commit 1baeef6cd2229e01091c69cef042f6b688e194be commit 0374ffa507d8106202a956f5951226f1d9eac22e commit 3d35ddfb07136cb4220fd9672589dcdf5c9d4acf commit 28da4f8336083874699defb5016cda3015ef2723 commit 7ffa2f27cf0aa1a89bea7fdacd9a51668ec32e7b commit 9fe2a4adc09567e32a5ecd4cab236022436a16c2 commit 7c1000aae5521ea4fa027b6ddf6aa9d4863e9c29 commit f2f9c8cb6421429ef166d6404426693212d0ca07 commit dd9f377ae12110fef29262af23859d144a613bfa commit 6c46f644cd5aa5b2b18020bef83d67101a98d873 commit a036aa1f01e7d1321859613d85570720f041cb07 commit d60d2bccae65e9f85016ca4d6f6ad169c86b1024 commit c1c9042b20031aa4f86f60bba8f04e304bb9f72a commit 27cbdc6bddc28cdc2a91e24d1ae91405e261fc2a commit 4d4de1cbdb26829615d05e6b556011d308880e82 commit 5c315434fdb6ab43566e6e0f6b9528bb0ad0aca9 commit e788ff7ee3b4b7b8ae534e605154f50dc4443a40 commit c7b5abd3e030718b6666cdf766f8905b006a9b1b commit f917130f19fe62c6688cc95ebebfafee3e005958 commit 5a3c46b809d09f8ef59e2fbf2463b1c102aecbaa commit e4812ab8e6b142e1ce19b50fcf744e20ea9adfe3 commit eba57fb5498f2858768321e64570caea188455b8 commit b29a20f7c4995a059ed764ce42389857426397c7 commit d922b80b1010cd6164fa7d3c197b4fbf94b47beb commit 619a06dba6fa38de1b85c09ac74bb8aa2449ce0c commit 9ff17e6bdaa50892dd9bdb1b116cb71b73dd711a commit a272cadbd8834c06cc2e34213202cc6be2c8fc19 commit 013413cdfeec53e06c43a239fb4e06a39ffedce3 commit d58bfcd4ea9910f59cf8327a36603e214e631b12 commit 19db2062094c75c64039d820c2547aad4dcfd905 commit 3532e75dfadcf52f8cb56dbfb6bce4503c69091f commit 93a575ab15332e2037d35744c50412b40e6511a4 commit 6a9b6c4580af184f1f8744ade1fe1979e3da05ac commit 98d2722a85c4ad5f2baf2272cbb0fab67f797b69 commit 08872cb13a715e2e963533f18f4aec2bcb145201 commit 59c8cd3ef6d04923e74dbef6e8cb4cec4053a99f commit 744bbf2a67e7798118c39cd6652a0e1e4ad86498 commit 2d0cdf6020549400d93a3f56f09373ece71c76da commit 718551bbed3ca5308a9f9429305dd074727e8d46 commit e894b724c316d9b45d963f929c97578cdffbbe8d commit 412fa1f097f48c8c1321806dd25e46618e0da147 commit cd65de1ab2fe4b99ec20861182b7c24d26559f48 commit 419491eaf1ee90b83c260c32b6c29b1d96c15ce8 commit 1b842f73edbb1f8513ef4a89389176c628dc014a commit 13cdd12a9f934158f4ec817cf048fcb4384aa9dc commit 8690be05cf055e0c68a7e151530eea8bda0e601a commit 47e157a5b49a4c099daf202207adc9815a2f2916 commit 3ba39084d6fc5dd4db321b367f8bbd46c6ea90ff commit ac12d250e9889e1f3476b96931dbf07ea24f5f52 commit 1fdac123ab01f1e5eb91a34e6d8a60858f5927ea commit c294d37eb4554d3e40f9fd66a54b5594028a0ebe commit 1176a905dd64637b34b7d2cde8f994ff5c3d1644 commit 41b611db30143e77bc1d7f066f1954e9fbb2cdfc commit b3343230ceb571be927b273875af6d8282eda2e1 commit 927fc4a015937ecdc5de04c144963aa6a57762a2 commit ab438a61e4c3675e6077d232a67284328777d929 commit 1032a491e2b5fc9793be31aae2d9e207975a1e7e commit ace873049e8cb543f00d8393dcad19711e7ec969 commit 84f9c3c73b9a18a21ea13135d4e850fcf7629f59 commit 0a2f6372a43ff5e948b8b10be34d4473f6c2ef6c commit 81b1b599dfd71c958418dad586fa72c8d30d1065 commit a9da8247627eefc73f909bf945031a5431a53993 commit 9831a9d1841fb3188c46a13da30aecd96bd1bae6 commit 626765bb4b2e732e9a1595fc801f696dbde12db9 commit 39bea0ff0f7470a5a812f50b2485d2380759e19b commit 88d0ecbde90fdf5b78d702f9ec9711d60d35004c commit 463cc9402e71deead30bd85335c56a98a1c1c462 commit 6400c215a1c19e40bab513b20d35780e61b291f5 commit a5819e51912292e16f14f4c014c384f754002e5e commit 4c4cc7ac207f56ed5db5272dab4169d2d40e418d commit 9cc31938d4586f72eb8e0235ad9d9eb22496fcee commit 589f4924e815559282e7c9f2854cd6b53ee9d6af commit 5e0bff2b9690c857d3465d90015fb30fa4947ffe commit 24335848e543dc95c9e2ffa0108d879ffefd0442 commit f645d22b93d5599fe47ce587ee36931290ba5778 commit 3fecd469da9aa0b24bd965f05a8bf44f9d8e2a2e commit 92a3a9b1a3997cf67aca7874e7f61b102ea2f27c commit c9b685df2d2138aa31399b0d146ba095a91c7846 commit 7f4f4adb9ba1d9b292e4b3ade0235be2e5ad5da7 commit 3867497d64cec53195e9de2db1118af4610fb9fe commit 45365b6588b3910c1699d818d0bf3e4c514258c8 commit 959294e47953eafd1ddbeee362827f4a8aa07377 commit ba57b9b11f78530146f02b776854b2b6b6d344a4 commit e94c25567c8519b770985cc86b652b06dce807d2 commit 609d830048fb00d4fdea59fc9d17a8d63fbddb4a commit 960e27a5741cd3001996ff6ddfb3eb0ed3a4909d commit bafc31166aa7df5fa26ae0ad8196d1717e6cdea9 commit 489763af891d5dc35c0b64e18af284d6591286cf commit 59e9fff1983eaa9f226699f66f7d58da432dfb16 commit 27e6be5d753687764c852af6468c21ef0624022a commit b2edaac4f2fb4866c3f9b7be5c39f518fd497a3b commit 1c312e816c4088d183c41b5d944f89775f3789bd commit 7e5b601008e781231be77bc8e1a84516f069983d commit c953cf040687992cfa066acca7d1c12e25fcec3e commit 4e004146c0bab0c05d66dc648593e8b7ec3d8df5 commit b94f1cc93db72078ad2da02adf1818f5e9122cb7 commit 7a4685cdfbdb94f1cf5ea2ddde824d94bf414708 commit 34305ac364dbee1b8e4e5307599c8b9afff0b01c commit 3c4f6507abde5c36e892d63b25296fc6d9b13285 commit 1d74159021e9a4e58c422f0b91e2a6fcb884c54f commit f1f6f48a338cdab96efef712dbef6b1e279583e2 commit 27fb73a0e3aa7478bcb5d2d59d65eec3c68fc165 commit 64e2e71737acad867577deac92c1bec62e8b57d1 commit 9f58341d63bd26e93cca66e9e1ca850d3c40b0c3 commit a6f7baa387a32940e364978f72c1c150a29a219d commit 04b3c34f5cb2994a5e466659ea4aa962c0fc09a6 commit d446127107e8185c2dc750cd4d0c5ff697a694f6 commit 8fa76350587b6deb8a95d83f9cb23ce7599587b5 commit 44407010ce7f524e4f68aa25f9250a9cf9e4410c commit 9420a034060a094874091cb6c6257268f08a1999 commit 435af0b919bf9eb78f4e05e8596ebed9ca7885b7 commit 6ae869b9b62534eaf04f838048338bf150bc6ce4 commit edacf33357b8576db3198e4ae41bb7e6cd41ce4e commit f14c8c3e1fc9e10c6d54999a96acb2b5087374df commit 9ab367f838a692843aa21b2ff43ebfc3bafa7175 commit 5b7bee5b445785a47b781e889e51219ec35d4407 commit 9749a42db74c3400e0526d9a39fa0324abfd0d66 commit 4dfa60aede755814dcfbc9a05008265d827cc98d commit f835a571ec998b83c165022795f9385f9335f108 commit 029c85adccb2e23352f622394288ecd133449332 commit 124155c0bd4a4ed822c1ba246bdf5123b42c3ad9 commit 6d7d0a4bc39240a2dd84d122d4ed5487e6acddf7 commit 4ab9d5848c728e5339e382f678a5e580573b3a3a commit 1156e1a60f024ce29fbb88dd330c2be81c4303ea commit f39c25357f0c9ada9ed9676eaa7681d4583dda63 commit 83033f72a40b5035c78f847fa4cc55fba633b82a commit 5a0510d58b635ed5bc2555ba1255cd2b34e033ee commit d78e816a3d615073a48bf8cc438790bc08160e0e commit b848fe65f856193fc4f567c84f559f60ff66a3db commit 42cdf6f687daa1a1992db400e8311e1e49c787fb commit 45b54a7dd3437632352ed28163e982233ef190a8 commit 2dbaf83998fe4772c83e5060cfbc21808758bb4b commit dae343b343ff741d727312b2a9b03d86e64b31c5 commit c6fa6fe9ebd5cdde0e41a558ff3efea8fe988e77 commit 09d8a67912462a07cb7ff40956ed8c79b1c74564 commit 0e768043bf68dc9713de34780363c595e54af7fa commit 9e690184586bfb88efa176cdf912414f6c53519c commit 967a66396e4668ef314e06a0391e67aa1cf6d058 commit 1cfb4d6121276a829aa94d0e32a7f5e1830ebc21 commit 29551fd90ee69771f499071c1119c1007febbd1d commit 0e5f625157ca47d9ee27a36310611964bd97c605 commit 7a6a2e59aacd6d5e75927352b72d39a5bc447e09 commit f4409a2361152f3480781a1dea1a3bd0d8369c78 commit c0c27428903700d86920394aa2302506b5d95b17 commit 4667fbe2f7c54628c48aedc8c8472cd12a5f7fcd commit 1ffbc89c302669c95779c1e6b0901380544c9bb8 commit 738b3469f8e12ae72555ef4724bebe8167a93e29 commit b9274387bc2a4cf54b02e039b6a0aef5dd5f2936 commit 9e72813f69b178b676a54c4d6b24d3e84492b61a commit bf7fda0b3736f93ac8b18e7147e1e7acd27e6a19 commit 187916e6ed9d0c3b3abc27429f7a5f8c936bd1f0 commit db5dcd476eb0288cdfa781725582dcf9bd747a6b commit 273f47997718fc72d96e5a4a640538c00575fa7e commit 62cc621604a466ede81a125a2ed63e05695a48cc commit 84f14428b1e0d1f61776c5fcfdef181129533e0b commit a00e595207d001432a85758954c3a6f6a9896368 commit 807a1c14276b6ba6dc7efb4784ac35bceea1413f commit 2f48965bdc02d781181ee4fa3d5b3cc168e6d9af commit 4994d1f0a754cded0afb62c4753d00760ddca511 commit aaa07c0d08a37bf72cd73a3119ff99dc2bfece74 commit eb4f01784ec1d589629dd8c85044b7c07e5f6993 commit d97b02bb9c7aa3008d473d11001e1b45b7e0c7c6 commit c488a9370d5a1da71f7683e0d6da40a2ab0f1be3 commit 9a06655e73834819149466ae8170ffe53b23e6f8 commit 3fb9dd5fef7ccd756544713e6e84db1c525816c4 commit a39b52c838127a42c57d5e080dbd5204770aa80e commit ee30b8001cd85ba0ef287b216eb1dad58bb58159 commit 1d6ecab1ac0fdff8e62ff3ba506b606177010d08 commit 6d99f3f4ea948f26b074a069c0406dd7f1cb0d8f commit cabbdea1f1861098991768d7bbf5a49ed1608213 commit 82ad22bbad008f84ec52208c5ba2c8f1cf55fd8d commit e84e40dcb3fc972cbe41d228f1e45128285e0c47 commit 17d62410aec363ec972f532fed5aba89b3f59ae7 commit 6e87c4229513904295674b84b6e2d12951567191 commit 3083b1007d4b8d377f8e2b5ce349a275a2fff725 commit 572773992e31e0e31692adf6797a3bf7e094097c commit 1d8355ad922423c9f765a644ed04526a6273d9ee commit 6ba5a269cdc9f447be882bbf99548361c8ebc254 commit 9c384ee8f997d0646844cd431f1c23e6dbf84a98 commit 1a4bcdbea4319efeb26cc4b05be859a7867e02dc commit d205a800a66e46430ab93c0d450393233d39931a commit fe9fa3859b66caf4a6923598c8e343b8a32ec5d1 commit 50a32b8cf4d7624eb8606b4cb7bc6dee37703da6 commit 3a31e8b89b7240d9a17ace8a1ed050bdcb560f9e commit 629b8ede8b93428b8d124d343b5fbb57ab64d5a8 commit f4caf5842652f08e024741ef6d423cb0c101d863 commit b35ce49ab9ca2bc6a59d4441efc5039de80643ce commit d9426c3d9b4e91dda4f1f1684f9296762fafe0de commit ce8a12a532ed62d7037be91c5714243fdfa9f672 commit 3566938b3491bb3aad701b487130f3efc363e2dc commit 98a54e88e87f7291d4bbc6ec646c498f64ae042f commit 99951878b048e39278bb05d96831353eca23b75f commit 0fa49d108386c201b5c2cce68066a9b8f66883a5 commit 62e790879efbf09edb9f262d5eb7765aeaf89809 commit f544afac3f34124088b981c63843a3cc48f4ee3e commit 9b4fd27601fbe7f77e7f8a8ca226211ef748844b commit 81283fee15ea6afb1e32defb369c3b96d2d6765c commit 50b8b62ea496c615fb08ccc8a6fdf1891af75d7e commit 76e5e4c70160b3764db6093b3366b36e4466d727 commit e684e654eba9481a9f462a7bbf5c385b7d1c076e commit b889ef4ac98837838c38f7b9f72bba2f33ee367d commit 380302f8b894a11fcd84a08aadf6a858eb003b0b commit b7179fc29f50d837090d7b0c1f224e3a116cdcc2 commit 342397db6d09068e335d42a97e0879b7f5f99364 commit ef3aa0b40c4b1f4d8b7db8582833cb61fc673f60 commit 31c0ec84f92cd40cfae210dac59413372996b5e7 commit bc224553843e526bad4bb91188363aea1664a70d commit db77081fe3c88a31eaade8a9c565c48c4d51b093 commit bfb44eacb0e2de63bc7824cc590ede51a02a7ded commit d7fd2a9e394b5f2bb900fc4e1e04e8dd4a97a7be commit c21d446ba7a83ab9f15fae8f9c732bb94f8a5677 commit 6ddae0f3ab18a64e83bcf7b090e085394046f130 commit ae972ed5e0dcb3fab57020e243563cc484b8969a commit 89cf4549a949b4ba3ce771163b75285979c95602 commit 147862d00bcf7e23e0a125f910f5db224f7b6722 commit 15091a6f4380a0c1a7202d52e82cdaaf80e2bb70 commit e6a02e2cc7fe3fec05eeaf08855e57d616a037e1 commit 5cf1675591dd28afc498348757469a87c1e9fcf2 commit 8dc1db3172ae2f17ae71e33b608a33411ce8a1aa commit 74c5b85da75475c73a8f040397610fbfcc2c3e78 commit 2f77b9a242a2e01822efc80c8b63eaa31df0f8b4 commit 3c8bdb51be0e895010da62dfa173bb1227ff3b6f commit e2069a7b0880ccdc6fa6530b6091e47168705425 commit f87f686482c6d2d4465245356854710b01f312c1 commit 7fe51e6fd2368b358441a1f6e0c94f4cd7e0720f commit 21e1217b4c0e0234704d50ea303c7603266604ac commit 5e4060123687c4f2c9fb855874f77b14f07526d6 commit f38f147ab3121adbd7510a82e6eb0b41a356c26e commit a805889a15315f7fa78c1c4bb2f1875c7c43f919 commit a8027fcd08f9127d38edeb59600ecb76c56a121a commit ef75a6ef37235e211bbdb17c25e5f79c55df1750 commit 5db392a04575120de4e73ee10c0dc727426100c7 commit d25555866172a0454b0dc1374b0ff29e1ae5f676 commit 0ee20b86966cff359f51051a56f8c2d89b09aed4 commit 386ea27c3b0bcdd5b5be74bdf26022ab931eae7b commit f786b1d4ec778a5fc23911f06a0e38c9f4953b0c commit 2a47a2d90e5cd96c24503061c8920a1e6ee248a0 commit 3a1083873ba7730970665d04c33680f96b27e3b4 commit ed42f2cc3b56955310a16da726886e684ed88432 commit 0d81101c190d1835f1bfba85dc3d65b9f9cacd68 commit 5de6bd6a13f1c717279c870eb8290e466c8f6a80 commit feb36dd01403689140a42f906fc75769d3158400 commit 36be0181eab50abbb043a087988e6c2bef59dd45 commit 20bedf1379b1d4b060e3f43661f35e5447d0cfed commit 92085240ef9c0ec60c27a60b3cc0d4f5266fa511 commit 643e40d4c06f8c887af1789c7bf8d279e9c8e4cf commit 1bd6dd21fcd53ac78a9018b96699ef1aa99a3e59 commit d1d22df174ae512c57374f517e346b608f61555c commit cd8d77f328c53aad8915c9c4d64cf557742bb257 commit 9eb7681f760c77adece36bc62953245c9f44a3be commit 8078f1c610fdcdd8003e2c538fb04af41fa5c269 commit d244a4167a0276db054d588e11f8142942bcf529 commit f9f74df58faa4d6744acc6d91a81a86895bc7fe8 commit 492c464750587ea033d7a2fcaa21f902e345b383 commit 53054e9a7775c228ada4d052f3e7849e71072811 commit 429a111851bc1f7388fe44af36166d399583a18f commit 7f0af02ab362df7f064df690fd59659a1cdb9b44 commit cf1f3737c2d336b1473596cc7356bdffa186bc71 commit 07bc768afb0a1c638f4eb054aaed9eaa291132de commit 1526ec9a3ed90e7ad36de7ef8aa2768b60af14df commit 0c552ed38780f24b7ac235c3d10c6c94686ecfdf commit 6b22ef25748fb77030bac02e2147f6d738212ac3 commit fe1f05df5919c67c3add49efb55e251a8d78ee4e commit 0c7315e7d5ef9b36ca4db32ffeb34a187cbaf231 commit 5d30cbb4dbf096bb964fb9c5fd4417cad13445a4 commit 659a4ab8e27eb39cc61cb74cc714ba1a8f8c9a61 commit 4db6f200a5fef12666ab66e54bacb65c5d675e9d commit f8b34a0518701bae8bb02fabe129f01b1dc33336 commit 7aa8a266aaa25e9e2f85d9d2d594cdff6b5635f2 commit 2e10ced47ff261d9dba439c5bcecf68d0c1b7de5 commit d4ad24a0b796ad429403bf17ba97ee7e2470ad68 commit 7229bd6fe02865a9fc324b4f062268f53190b5f4 commit 762702ebd324596def832a2b2a1cfd24fff78338 commit 0b02364e03caecbe30bdd9db0b3e6ba0196bb0ef commit 5fb34bd9cf9e248d7e84e431a4a6b731334ab564 commit cd321e6fd611db983fb7cdb52daf089fabe4f9c7 commit d6e924ad85a0cebc9e39eb956a23386ce32cc9f9 commit 58bd8023752f3d7e6888d5cbb27387853b04c431 commit 9cd51d53695e1df134301c1bdb8a8f965506e35b commit a058799923af7984552c6c07d6bbb088c1537e6a commit 02ee3b02d77661c593c7b0e49f5baa4aa0974024 commit cb30544e3cadf2164a123859519521dc474d21eb commit f5fe7edfd6ce62cd23fbd707e7f9fe0f56a45e94 commit 955220b04d42c41050158fec0f53957f320b96f9 commit 5a8b26a88639d69453d592ee11c03a24e0b62b9a commit 6df442a03d1a839242397259fa13168858c52413 commit cab7d478da112e66f2ad8eec7dcfc0aa2a5babe1 commit cf24f6a0d7137bc703a23187ffa4a65ed3f17820 commit 5c606836eff823ea14c481ad6374bc6d87121182 commit 1dfcdc30270a80ba5b45f922833c0c0e56d82576 commit fa9e78d14070c55a47dc092f6d18364680b83f44 commit c3729997a23e8955f017b6286bd6c73b386fbe49 commit 7e0eebdc4745b7e0f031df571621204fd9d6288e commit 3955b14134285f99e0763ba74b8b1b35faed37ed commit aabb478421f5ca2be0f1343d02873394e935c582 commit 7d158f52bfbf82279ea8f1c3dc7a3ab3065a76e4 commit 2fa480d36eb302712e48dce4d2f6564b24426be3 commit 369576c2d5a8e8c3d7efb9d598970ba3f006b07e commit 870d1e5afca58261a147e9080abb8cc75fccb849 commit 57a83b2dafff055698190d3fe3d7197c969c2dcc commit 5f09237b82e51be8a1849eb658dcb153748f8f60 commit 553f973a0d7bbe95ea5da46979d926a9c0ada109 commit ebadc1061e045e961339e0df7b8a07f3e589579c commit 63121b11a95ccd30763e6def363f8fbe992b7a3f commit 3d2ea552b229495050316e84d7cb0257cb3cd13b commit 6b7ec18b045ff524eab94340e18feefe9a783d2e commit ea2d2f8ececdd4c778b66e19b82ce278dfc5e1c4 commit d55391c2138c1a5bcd1316ccedf1835dd067d568 commit 4bc615a5237a641ddb2235236c21b1eaadb76963 commit cbd442ce91bdeb8f618511d65e674894a80e4c31 commit 37dd9d58a595f4cda5a7f01703592cc4e00f69b4 commit 993d218f82211b1e17fcea7a5f727fa16efba353 commit eaae4beee8a94b30f37341c9d14837c82e7e2647 commit 497db7ea33f7cec2a0019894e844789f003dbd22 commit 880f8b3f8032a022c85351857ba7020fd3345592 commit 44b5cf2e0f7952856f48b9be56b9eb2f688d70f0 commit dd1a02e280dae1904c8858c8cb572a61a84ba7c0 commit 527c670e5323414dbef8f4719dc9b348a50ac1c8 commit 75d1692393cb78b510ff18733457f91d002452f7 commit 9cb18287d8f1c4549d95280e2cf60f4d1bab64f8 commit e56c9ef6cb35f33dc83f635419ae55adf69db9fc commit 8e7fd19380f9187dae3ad18a61793b1752dfa097 commit dfdd6f89c4c7f3315d9cabd9bf80a8174ecb5753 commit 3446cb78f3a8033fda416825282e7cafecc83129 commit 73c84f7c478aeb98bce494cac73f2d20f4a81c6e commit 845c9b313f3122191c847fcc4092492ce039542a commit 5b03127d4745d6848f208463390e6a76d489eb03 commit fee500fa7cb7e11a4d2d66e75e65e67c156e27c6 commit dc6df2095deaaefe38a94d62a51b0d07c0794eaf commit bbca579fd2ea8cbc170df33587f8a4b572a4f025 commit 7a1efad04c210594069c4ab9f9c25039cd6915e4 commit 753b999afe47900531282f86bf430aec250b4232 commit 1794e9d7e78cb52605234d0ddc3f46084937f4e9 commit 98b2e9cad2279132e3aa4b9caf9164b2e35c1a52 commit a820d3ca8ed3a2851e1c9d5713e807f84e88019d commit c2d43918a14f7b0f04932f5a45728e0fe8161da0 commit a0a0c69c05bff025abf49ec66b2bfb94aeabcc6e commit 12c4d7edfb7238ded6c7a2584995d888b4d877ec commit d524180b88009d9158bff7fd20f3916455e0c32c commit 85b45b60722f506322393320bb6cc195378f2e4f commit 7a7aaab021a6772b29c81c22db9f4d2d8cd66ecd commit 34fd9d686772f6725242e900913ca2be987c12dd commit c9a502e981a961053f3f873b14677d95e804251e commit 44cbc4534bbe7cc1f7dd25976a044c7a84628978 commit 73fa255328263e525d7d46d511b088e80e3cd579 commit 45ed97ad36b744dfc2754c47cfd4423aab6322a2 commit 2d7f1d51c1e9812c6a085b6e5bfd99e31b1442cb commit da044aaeb31ac11e733a667763487508433f3ede commit e40b4b9a474887653263c138b0172b0e2fde57cb commit ed1f42f03c46767df7f55d6a75c39051a55cc656 commit 30b52995c294b3c9a002ff2f90f773cbf8850714 commit d839a158b2480814bc438f9f46f440a7b9f63cb6 commit 52c293ab0653b3e57d2202a5002f59593ed12d1b commit f471de2586e8ef388eea2cafa911695d94ec1d88 commit 1bd99ca2695a76f15d7f7862d6ef878588e854dc commit 13a94f3f130ee4db6b4d2a0843104807a7299aa4 commit b2ef2fdffed2a7fd5bf3f178a6a0427487dba5dd commit 7389c75114c53b061d686f19dff5833adaf96cb8 commit 233bb3733bd43966696f4a5e95129476e86bf4e3 commit b7c7011e67b09efc486b1de38f6bfbed75139989 commit 5ca1ceebab140b36928dabc9a5b36b9a3010e844 commit c1d3f627ff33bf1ae145209030a114c4985beddf commit 4482d3c94d7f1d6912521e6de23bb051bfcd084d commit 8c45a8340dd097ea0d6be6f718c4882283d9645d commit 1698e200e88db96aef7d16aa3d63df68a209ffbd commit 7b08b2e1caa04757bc7a35a46b3d5c83b1748423 commit 35ff4301ebc37bd45c18edae08afd2983dc9a338 commit cbf9e46ab0fec29ac39d05d9a87fa66122bc9783 commit 322a7e005db78b8a46ead91b7e3df3514cb658f0 commit e53a3250f76b8a0dd5b533bd0ce0dc821055e77d commit d90d90a1978af6530c7d8b201c4ab117d0506b1a commit dc37a9194ad20c4f09f22ec79cc2b5e5eb57c5a2 commit a64b15520cc3a19bc6ca807870b51b37774a4d3d commit 1e69fde70030e2fd2b729de5998d3fd6c94be238 commit 90cbee204e6619e47b1ec9fc14ebe03852585dac commit bc069d823bffd774294f5c3b12757a50fb726fd0 commit a0cdb3d09332900e145fb99f52d1d571d7030183 commit 00c145222b6ac93ee9926a8ef2e41dae55b97b7e commit ccfdbd4bdc0875ee8b8fe00691a6b5f883227bdb commit 73c2b3fd2c515bcb819d801c5c4bf053fdb1e5cb commit 8107e4996f4ec3304485c608b5880185840c464c commit 9faf929fbf6b457d13064d57017b2d4f62670b58 commit 228ce176434b0f61451019065393040d58e1668d commit f431393d605f55f8865dbf8ba8236760fbb0a3dc commit 970c1646b5ac93a13496d3429aca3e799fa6cf07 commit bb0ed57b4450e46de3651b310dcb4273032c3122 commit 9e4216cf2dcccacd0e5dc932f26e35d18527ff41 commit 0c451baf3bff8e2a9fa45ef6471f9f25da00f39b commit 1ad29cb3438175a9517f3b6cfeb0e331be213d8c commit 8d1c1bc13134ab90d773cb73c0298f2459703bee commit a1b0dafafca414cf8b3a51225215a21df2b3ddf8 commit 6d5f5eaf6acf26ce0dc986fe7240dc4a0c981119 commit 676915e4108f3a8d98944e16e6ce00a6440ac701 commit 9661bf687623f628729566cc3c58207c44e56258 commit 909ae7155faebc62af461924a91071c0b9cc4e39 commit 8572fa2aa517d2512abba661ddd5e9a44a893dc9 commit bfb4fd20b3e6997876068f469c14d963b227d896 commit fe9e5f56feb287b3f14b0a5892061a1da2b89b5b commit 7214c08c168046aadf15e3d731ee673f26c77213 commit 8f2ccaaa373815ff94223dc2e3f6d53ff2f3ecb3 commit 463e953ea2eda25fbde70e0e72900f5bafeff93c commit ded7d99eb5b78931cec30dd49cd4097d0ac770e1 commit 46d79cbf9ac64a5e63f0c85f256ba6400a1f2024 commit 01ef47477d05b784ab6ac26fa6878987eda436f1 commit f4d8b6f5c61ab5e98258bd0072d733741c76bd8d commit 4d5275ab0b18d17697392aafd93e206e6b9de647 commit 6e01882267a696b022cfe3473a0d3e5ccbe54010 commit 368bb1bcfb3a3bc70793cd347abe0bc60c01d94b commit ac772a3c07cad66df46b2781f39121be211d383e commit 75dda67c7213c3e0d17244a8c42547c27ee746f8 commit f2b8447b1f309901c3fdd4045febfe5cab545d87 commit 5ae0ec8b8045d72467d4e7417b34a5ab2fa72138 commit 48d19834ea551af2932090ff6de04730007e9876 commit aaf1090a6cb66e8b6d9da63ee983604a7eca8ffd commit 07bc0ac8ff49c9868a66526634fbc21cb194afca commit fd91d38b5275959a5b0804d4b4dbc5a4c0a8aac9 commit 6a944ccbf5f5059de1a9b3d48971a50cb5857ebf commit d3e53452b0f4cdd210432a268cabdbf65e98ddab commit 358e6c38300b7d2b7d7122d4fe485d8a4580dc1e commit 26dc0448ef36ba83be43a7c4da94d55ec626db1a commit 55ff23d9eb814dce8393a4c471259ded5a85d461 commit 96e693ad78a0778efb5256684a2f3712298f3e18 commit e7947c021a8b394677ab875288565d4dfcac779a commit a3edd1ac706243fe5ca1c0925ce120b5a2661975 commit 672c883c26c68fe49b161d7ceab94bdc69e57b0e commit bc71daff4f147377674e14589fb651bb36f44d4b commit db3b5cb64a9ca301d14ed027e470834316720e42 commit 4bdca2057933ef08a2ca7f44e30a8894ff78c472 commit b6f90baafe267a0705c5d9b1429c875d3c39fbc7 commit 0f2e1d620eca56c4ceebc041aabb1eda26b2cfd0 commit 1cc823011a23fa0e3497e9f6655172b2507ce2cd commit fa0497c34eb7dd9db9a09963917382e924c3fbc5 commit 14493cb99b71dbaff58dc0dc0b2cc0a56a88ef05 commit a433f1f59484fba7a7743a3c5a5f320d9e828b3a commit da539b213d7952741499283636f70406383b9570 commit 15e3eee8d3939d1f28cd314a5db2590ab94109d6 commit e47947abb9e71176ea2d9c8f55e03134dabd2605 commit a75f2271a4936265c8a189ab06f9eb89e343b441 commit c4050ff1a43eec08498b1ed876efc6213592dba0 commit 1589c82a10852c6de742e5d6a92042a3fd68d753 commit 570de94b9c5d93e1c5bc4e357946efb93c662da9 commit 6b43e1a05cb764196c5158b2447a9bfad1f2b531 commit 1e03322cfef9b83aa87ea0a508588f9f05a47dfc commit fcfefd85f18a0004c7c7b499f0701fd2c76d4c68 commit e181be58ccc2ac48e4b79996c8dd6dd9f34fa4b5 commit a0ba127960982b8827ba8b410c272ec8f3ee7e6a commit f9632096be49ed31e86541e3e79960e21e8f1578 commit b6b85c8b43a85988ecd06f039f8f90c041842812 commit ba08e9cb6ff87acdb2f28f013fe695a252533f0e commit 63630c9e5c3481c51ac3b4ee058628a01ac91ba8 commit b0a3bbf947f6ed690336cec1f6cde2a30d082dbb commit 46f7b4deb30558593c1d2e62d561a3cee21f558a commit b4520bfd801338c48d887f0eec74a53ab80f2167 commit 6c2bebfca43c14967cfb9cf6c2c074b0d755ddd7 commit 5e1e227fb7cbea2624b4b9375a9b888d02fed4f5 commit 6d39fa3fc802e511241898a6890a9b2ec7f958e3 commit c3f05ab8c40f8a5a8576e3d936cff450a39b0360 commit 85f23b0a8ce31f1e22d7bfb4666b4a7830563347 commit 41e491d8b606ea55b7234967f802cec8e6d77952 commit 570df4bca6187f493a1315a7373d7eb1285b3e86 commit 35d54e21e002198c13647b6cd8c77586f683cf39 commit 9b337b7d628a5e97b4dd72bb1d75f1716567b416 commit 3697b9bd7c69910cb6543d8441211ecfb2f013ca commit 1e91a5f79110b96baf7ad21d3c7b5c3e18cdf2a5 commit 00e1ab02c2ba31b2bd446979949193eb3ca2561c commit 610dab118ff5013d46069c828b58d576e0907b66 commit fc021438d0ab7863dc93f84a557af6dc6255b881 commit f915f3af9984464c308787102990d85d4e988d2c commit 2e8cc5d317d12f7fb4f66361a3ce5427f0abe2cd commit 895797d9193b38e759bc01268a8e3887e521f682 commit 1e4a00334add40f609162914af7a24bc92951008 commit 352b919c1e5ff50c71d665395b27acbd1bf23a05 commit 76eb9c95a409ea820b2e7c968c220e7a38f27d76 commit b9cbd51000ad3541351ca832b00600870ac08e5c commit 2c1c7ba457d4ecf475c0e220ac5359971355c6eb commit be3800f57c3b0fb39dc732345279db76a50559a3 commit 797a0a142ca7f3b823ae1032983111c055bc50fb commit 0a9115fd952a5de27dc360dc0c4618b6a1846c58 commit d425c6f48b189f0a5a7c7d26980fd7a2114fb35d commit c30e326e488ec43f6b0931f16ddba16a3370ed4a commit cd7d8400aa04ba989a87949cf4611b7e16af274f commit 9a18292d41ae201333fc4203b3e7987ce5c1de6e commit 3e7c6fe38724eab767033f9d26b496bc2e815157 commit d26ea1b346e71c07aa00956c32fe2d2dbec068ec commit a476c0c645535cc0361938becb440b4239996079 commit 934deb64fdf220d2caf978d22615bcc7c9f6897e commit 4c6ce75fdd628c43aea11448ed41b52119dae42b commit f24e924b7e8aba7b62671e7e1a19d83301a08597 commit 53c5692e7a3c8e8eed3ec6b876a3c982d217a5d7 commit 2046ed6c8aa951e4ae83c5022bb0a7c777386097 commit 7f6db89418f9d26eb68e050ff16de8e9827011ca commit dc12f9eddedb8b41f4dc948e5e636e5221fb4d43 commit ea7bf2f22061a7bd77b17ddd4ac1bb3500ae823f commit 6cfba94a77c5cbad2d7c106ac5f026b6a8b1efe6 commit 3ebfd221c1a83e5f0edadb87d173d8fd93d1d125 commit 2fa9ff25de08e598af051c76b216d2f073b2ee89 commit b125b80bd546d72d08ab64d63cfc8efa397b6779 commit 315e29eca57f85107cc6f687c2d510aa532fb3f0 commit 1c77527a69d5ca19cb276e2728992d922b687f35 commit 25f50704343de1bea70100ad41621b5737a6a96b commit 44a976655597b60bd501148abe66462bdc33fb6b commit 84b4dd3f84de424a68e1fda0d483530ddaa92b45 commit 3cde91172d2e9d8d8dc6e0d62b7c829de503825c commit 40b832aac03249ebc70479da9f3ecf2789deaeed commit af2ba368838ee4913e758f34e3d8bbfeb110be36 commit 2c22ed0bdb0cb6da9408593eafa6137325576017 commit 27c5f29526d17a33946a6b977a0274eae320c489 commit 6e3c51a5814aff70b72e8b2a9953bdac7aea2f44 commit f464c5dd4d918d4dd84eda7e68d4a0b6d41fe37f commit 0409022c15623d91c112e51f38cb62633becd432 commit 9a3ce1a7a9e5372d8c275bf3fbef4456c8407145 commit d78c71321ea963378cd3c5646ac6c6483d8d1a50 commit bf16235b39d4ca9c8dd47ec1b2faded6ea58f7a2 commit 47e7f527c8256a2fe3e61fcd5f59c18bc3fb53fc commit 2b80ffc2d86cce8444d5fc0237afd77f7d18cd1d commit 77462ab8c62b0dc65261c042771efea44a111131 commit 5c1c09a71634423604c47502d8059a5c098c6f40 commit bfa84da6185cb1897fcee0ac3815625d162d39f0 commit 30feef0676092bdb4b8697e68b8d5864d54f096f commit 0386d52d1516d80b81a25552df74b8a82dfb77f3 commit 92ecb92ccc839c4c4b51ab1025cde5dd82c2fb4b commit 45b3a914d40e63d2c9e3a3e02fb2014be975b9b0 commit 0ce50b2efe08e56224d11d735310b353e0e4e222 commit 01c3f464743b64e6e65cb9bad951458986819a42 commit f2cd6b26922e68ffafd14a9128e20630296e430d commit 29f187f71e7fd4e4516f235c400e457c50e2ab70 commit 5d0622705ff76e017b32cb763cbc7b00694f3b92 commit 6c47a79b3b8ba91faf89f9866da2ec16aac979e7 commit f10984a353c87e696872de8f9614a58689deb0d0 commit e03f04b84901644c81b4348a813a8d17facbd277 commit e602157ec089240861cd641ee2c7c64eeaec09bf commit 48dd83c0fb6c68742f7fefca907036942dd358be commit fd73c8507675f6bccc039cf319f183e41e447cb7 commit 8789989b476b5f3bb0bf1a63b5223f6e76cfd13d commit 04e8595819480bec2754bd2cc4377270e7e6c799 commit 109b4d8cfe4279da1cbcbcd99ae54cb2b2aee521 commit a2b308044dcaca8d3e580959a4f867a1d5c37fac commit b18f05a0666aecd5cb19c26a8305bcfa4e9d6502 commit 1385d88c6aa774332f1a88562b6f1bf04de6d710 commit 6091ede913015fd3c07cb16298505bbd71f41689 commit c796d7e039b57f9407523b8c4a3ba5358dd2d8ff commit e825fb641b4c78a8dab5101559dd27e64d2f24aa commit c77b3608b8ec79a33ac36a9d281e0395a3343d6e commit 2ecf927b1730a4addba7ef775f433046fbcc423b commit 46d75d23005f87057881c460a94f9357d079087f commit 66a11ecbdebbc8ab29a4076df0b95f0bfd61b1c5 commit 18dad20c3dcbd7789f3d07056cd78394c8278a75 commit 674f90f83bc941d0cd5a85a714c5bfeb8789163a commit a34b09060a3b95c0341b444ea49558a807988e34 commit d7b8e68dc04ad89809832bebe9ab5d7965a6eef5 commit b336c681bdb5d1814acf8f19d1225a93f36ddfa2 commit 9788d087caffd8358d6e14349ee69d9385666719 commit 20a29ac09192f9d9705015261652f277e8162f09 commit ff6b11cc7263d4d6f17bc7b94e81ffcaae5fe107 commit b3b0e016ec44d94db48a7d01b69570b5de37a31c commit 2ad00e753ae13b0c523a579fb04372787f77cce9 commit 73ade646c545feda7c5df9b9c78c5d011ce76463 commit f36f2648f32c184ffc285a836b1ce3757e966925 commit 75589226372ce5255ffade2ec6dea862338f7595 commit 6812d74803740100a0c422b9bc1fda947af4da6a commit cd465a670087f94e62100622f9cbb894f524268a commit 38ff516bb00cd8e974c8b5e70ab6e1b354b8f424 commit 0ab720d506252a28983baabafa2605eb6c94b1d7 commit 91b38ca1b331ef1af3b77e2ffdb41654e0fba127 commit 3e8d74cb128fb1a4d56270ffbecea6056c55739a commit c02b04633c4f4654331c53966cb937df1c73a9bb commit de231189e7bf1a38c0f889ec5f8911af473aa792 commit 7e60ab4eb3e4ba2adac46d737fdbbc5732bebd58 commit 25879d7b4986beba3f0d84762fe40d09fdc8b219 commit 268182606f26434c5d3ebd0e86efcb0418dec487 commit 2da3556c8650798606c0d3f2288b2f87c6665a69 commit 5b466b28fa943aa9441cd27a9a469e1330814299 commit 257e9891db0b961b79c9f0ca50c808a738000e70 commit 0d1ff99a3398ad4b7165ecd8e69d360090b32250 commit 40e39d72277fc014e7b8149def35831998c8df2f commit 1893549af62135c788a66e7ff27c81459c532fb2 commit 332bb09352a69b8e7cf0825575f90581d3695135 commit 89fb3020d68d46807e1341ad8acae53cdf197234 commit a64f7eb026ea7205bf9dfadabd746e47c5717b5d commit 1becc57cd1a905e2aa0e1eca60d2a37744525c4a commit d4281b49c1b6afc66c470c85019fc1eceb676a78 commit a3ffabb25077059427434368a1c65c176a0f93d0 commit ab22ecabe99922db4bec8e2b439336f865bbc117 commit 9f77af014cbc3b77a2f5b8cbce8262ff97e94aa7 commit 6dabce860d40703d7c27b71a120317f09293cf9c commit 87f4c2d9205c6646b25081581e810a05cc9d2799 commit d522458e63136ccccea18077687ceff1d31527ca commit 1b177b5c6846f20be013b45c36c24264049c81bf commit 1f9bb94f128f7d13a67fbff5eca730cc2e8842a6 commit 1501fe94eedd18243b84008aecc25f4f3c4fa48d commit 803e4c9efc79c96796efbecab9ed53267d051256 commit 665d49c27eff01c91a155a37f025b981c2f73a3b commit d9ed111b76e3ebe1d15b7db746d498666a396de1 commit 06aade19bb2433001f4d10f1424a803b3f63734a commit acf429dcac1440169a3b28da784cbda72f3b678b commit 9f173a80305d84f6b41bfb2a5482179e6e4957b1 commit 025723e059ab454823e6aa21277976178f23d120 commit e7665d0ca7938a8f921760a780bdc55c5eda6df0 commit aaff9c089947cdb366ffddf4d4fb9747b6469d3e commit 1fbc69b8f543864fa0a6c4b5d95fb5f9f5d23d33 commit c3aaca43fb07ce05f3a3bd85288eb3d500469be5 commit 353491c48697df8a133bc468dc1b8ef65045254a commit 413521a4c9f4bbb4637b9ff3427070325890b08f commit 360930985ec9f394c82ba0b235403b4a366d1560 commit 55a6dc60b47c817c644af2b505d46815d8b9219e commit 194224a54c8bbc896b1fdb4a10ca5789ea4b9e7d commit 61c31b8b6c5e386a9c2ddc4e2cf9d8ae46c8a1f9 commit 232f2431899cbe6c00c1350e35cfba91ea0c1c0b commit 93ab59ac6d8311244a76ddb31e7ced4cb1e8f22c commit 3525844d483bfb2236c1dd00f7a490297721ef78 commit bea35f7d4219999b5e4a9c8cdf6a17683b2ed1bd commit 164f0791c5d10a2f0e947f6872a7c14ccd860085 commit 95c2f89895930538879e1c3f1467a8095e03d1a5 commit 200c7c8132318378feffc1e4b0189482f4c7f1b6 commit 4ba439b0b38456c61505568a7fa4fa364850a236 commit 6c882a573bc1d6130274ef74d1697dd769f6a9e4 commit a09e2065101a343ac3a709aa6236cdac874627eb commit 8cce16826f5e154a3463b7eafa0f6beebeb48e49 commit 423502d4f622ad90414bd38d834763277fbab26c commit 24bc366a4309f407ea77110ba15e3581005def6b commit b7941e2fef13baabd3eade31601e70adf729e887 commit cfdce594171cea19ba033e8d7ff57a767c0ccd63 commit 9535a86a4072babc37dc6bdadae52bdbb88166f5 commit 89f85765555caccec0a31b604639cea53942e522 commit 491ae27829cda38df3ab6d2fe5d94a80ec1bbe22 commit 28bb7f13e70dcd3a6c736ee1567cf91c47af2600 commit 20997c04b7168b1833da77f882eb5a6f246c4b96 commit 23105541727cd6b702c9ee66d98ba50a129fbd5e commit 5d6cd20075c823565e7550f8de70d7615ec3c8b7 commit e0ac8656e75f1f26833c14313811043e36b0bba8 commit aab9b215d96e0c7e89109821f738f80d84270461 commit abc7e24275a35975e58e699ff2afdbcc47e124d6 commit c0c2c51c40fef6960c11a3f132acf91878fa0de0 commit 2c4993bf88ef1e0ed6c81d2fb56f30f32c3d2e74 commit 3a10a44a3e00d0227d13210ffeef50daa3a326bb commit 70a6267753c1f755157e3bfb63d8fce4137729c6 commit 3034983db355daefc4463defce802b8e6d86539f commit 3b60b70dbec9bb2450ecf012a7b8b6e5dce7168d commit ab1270a29b4f2b23aaa28d590d8361903c68b770 commit 9938333a46c9e20539c85ca7df42a739541b0493 commit 321488d180c2f5c1811a0ba7b18d18c7af87739b commit 9c9d501b28a00f4365632260df6cae488a905af7 commit 8ffd6f0442674f32c048ec8dffdbc5ec67829beb commit 28ebbb4981cb1fad12e0b1227dbecc88810b1ee8 commit 3a25071a970885a2bd3f63cfc7c729e0d536e10f commit 23616d1ff31d6e8ffd4f1e12b6b1e2e783fa8280 commit 66dadf1ab196fd2cf8c41f07a4745ad7fb84726e commit 9eba1b8b70f6488e944fdd1928ef758917bf7229 commit 07a1475279244cd8eea81bec44fd5f0a9d6871f8 commit b695c97b580a1949d0dd96aa17b01d4de738eda3 commit 837d4e071d250d695eba7a08c55c77f6a5b4bb5e commit 21d81681c298e9712fe37df4b001e8476fc7d03b commit 0be5ccd518031be41266ef952db2202900d519cc commit c6a64ad9b7f7182b5e2439a740574300b2e61951 commit c22b044070971e474dd0ff81a9830df93751f726 commit ca2943fe0acecfc89937dcf0abef2d7c1bccf9f4 commit 3eeb0d037a543588cf2b8890224ec26841e1069a commit 1bae03aab2b41770b9198b3ef1ddc7dc7efb0678 commit 932fc49479303961c1da54a1112eb26cdc890c76 commit 7a66ad6c087ee3863cc9a8d696ac2191d1c2e904 commit b3a02e8b61c19a0380870c713bc704d7e4f9e0dd commit 23ed8833f231a3ea36d1c352737ef6f1eadfc899 commit c00ebe9aeec6df816fa8a5a167cd1c102d02dd28 commit 3808c34b291925d8a0fda2f23136381c1feb1dd2 commit b5c07eaefc8b6e4aaa433f52ce74e619cd0ec386 commit 09521b5d49222d5ae932c4d738b2d55fb7abb415 commit 0df1106bfd13a9fe1eb7c33666bec091bc37c2a7 commit 1b320ad3f5a88602aef2f207bc211539a5496702 commit c60c9a5f9ab659e5ca9fa0e485a28e82fba761ce commit ebe884e8b93351382290ae107c880230d3a1f125 commit 2e9fee9b8e0e10fb9a4cba3ace607cebf7021bc1 commit 16cc3a221537bb3588ec2a568d7bd0e7972b25a8 commit cbb63eccc05626d0d111b335e44f111a3bb92871 commit 023f4d60747cadd96115c3c3b55986798322f3f6 commit 93682f8a196718c2caf9b9b3de7894d5c0318f1f commit 5e86aa29a338f5c25e2d10d021bffc6b1b560ad5 commit 3c87de6d034fcb756a10523367219c5564a85fd3 commit 6ff5a1cff70441e1cd27614c359a66d29649e872 commit ba3c87fffb79311f54464288c66421d19c2c1234 commit 4f98cf2baf9faee5b6f2f7889dad7c0f7686a787 commit d230f1bfe7a1977565ce1e2804ddb7b7a3d911ff commit 0ab2d7532b05a3e7c06fd3b0c8bd6b46c1dfb508 commit 08ca712270028111b22e4b159d11dbd6b770135e commit 4504f14338cdc43586189558113faafa8acb9ffe commit 257d7b7be26d83768cb07585480d90e875365d5c commit 34941e5dc72daff878267c55a9bdb5e055804953 commit d3116d9f27b89d363dd528e42fcf4895a15e0c3c commit cde2e087a320bff5d772d82c9fbddaea18daa94a commit 01f648202c5390f4c366793b34c27cddad4ca8d7 commit bb13d763f251c28b08d996671c5146a2113fc9e7 commit d13f050fee94a454323f864fb005c4355600cdbd commit be6f94039e1a91df4b0efc2da9167ca9c17bb532 commit 33f3437ae1194ef5dedbf275dcf74ed9c114647d commit 7cee6a6824a0429a6255abe91b5af01b9a01cd03 commit 97ae3c8cce96f3bebf883d0812cef5d3fdbe3e64 commit 0de4ec9a03537bd2b189b5afbf83acd6b72b0258 commit a9818854ea7870ec5464d37b72c89f5fc198708e commit 218895820e6fccade42a7c3ab9c0a44dec0a1ebc commit 69a8c3ae2dea84a6d571e4c1aad306f630f3ccfd commit 44b87bb0836c65d1b9d21b01503eb6e9b9297771 commit c2d2588c702364ff53916ddd97e2b26fd4f4a317 commit 455227c4642c5e1867213cea73a527e431779060 commit 50cff45e274896235d371f16eab67a180e12a732 commit a37d23f816b18a324c24d066d5bc453308913bf9 commit 12fb1ad70d65edc3405884792d044fa79df7244f commit e90bf919f714ae2a658cdfd03238e7be9ce9185c commit 101827e13026a981e887527620fe9710adc0e481 commit aea1b4738bebd8092bd437ce0b03aa9587fc20a7 commit a70a93fa568b4f05aba548dadb673703eccf5480 commit e0f85f4690d089cc1a60337decafb1acf7eec45e commit 103d5f08ff42b666c61c350be2c3e724c1646918 commit 5bc20c224bcb863571e8831cdbba23cd61b10ac3 commit 2b36de971d25daa2ad287114ae3ca11a8f8d49d7 commit b17bd5dbf64677682a3bca249c64521d5eabcb38 commit 12976e6a5ab8fc3766c0304d72f7eec81a109b55 commit a159afdad2f6b97e4d18549cff2b53d17e68a412 commit 8f4f5f0b901a444c2317ef0fb29f35bc296daa55 commit 2e8452ea4ef6406927e4c5a71d1a7ed6881c5a9b commit 1718e973e3d23b653cd77994073a9deda3875689 commit 2a9aa52e4617c777fb0c885f0c02bf5ac65a786c commit a4d4db727320e0f80df605ccb877743359448a36 commit 2b607025797543433e7733c276ec34381edffd71 commit 24e461e84f1c6d58fa1032f06d97e277dd0b4adf commit 75c2b7ed080d7421157c03064be82275364136e7 commit 9bd443cb74bd47d820c3cc31ee0ed3008d004d73 commit 9f0bcf49e9895cb005d78b33a5eebfa11711b425 commit 5be7d4e3cf9ef9853934daa03cf573723bae1650 commit 2890662822def3dcc1b2e690d6fcea694c666083 commit 6b37fee590ec842f6e172c4f9c7dc4baadbdfda2 commit d6634d4d92eac068e2136afab49dfb15a9efae74 commit 3cb4807dbf7f47f0a1368f78e7c37b1dd515c2dd commit 1598fc576420207e5c89088fc46610c2318e2f5c commit 25c30a12d718bd68ad91f58c7546eceaaf0feca5 commit 09a77a40b51a979557521d5a2d39e431564d5d23 commit d522ca2714b77e15ebe6e77c1db7468c11a81180 commit 61a7c162399590263bf5f1ff5d2de634bfe3ae8d commit e3959cb5479cd24baf9687734d5591b8e2ee08d4 commit 3898c8fc42b247c26c43c26873895b87fe58b477 commit a15a77c8e61d2db075cc6e2104bfdebf5c9b966c commit f9bfc9fff2997abe3c1a560a38a0c359775e7ec5 commit 5a03159ab7ef456ba22460e47a9d0eab2f310424 commit e6850f98efc70277dc0e941e905182738e7327a0 commit 5a863904bab4f5d22012f7d68ab2becafc303a40 commit 869bcf59fd64382e3b23b219e791e6e5ebf1114e commit 49f26218c344741cb3eaa740b1e44e960551a87f commit 0baae624630788862bbd654741929007971e9d5b commit 490ddccb84fe2f6165b2bdd2d00fd4ab593b95ec commit 8e7b3f5435b3c0751515c973972ebb11e0fc0fb5 commit bbd069a860b78a087d20d91656a5026c0196586b commit 35c7b59e3691cbea91c8b91e8ec4b0a4a960dd5a commit caf0f98dc280b5426b1858d4e70130aa3dd9679c commit 82054942472745c2caa4f6b31b4174401348b887 commit d155cfff48499d1e973976519ca81a7d9bab2cc3 commit b7588507152148eaf0f19feb98c65b72ab40a726 commit 33e82119cfb2a957f250f92a1e4c4db2b06400db commit 8be295046748432c53a2dee39c469f63c60b0ec3 commit f2bcc0c7db0c004f0184675e7862648e8aa197f9 commit 8ff865be93e642d0ad66ca7369f42fbe36dc6a90 commit ea791e704b97ab5abd563b6d2f88c4019940079e commit 71c79a196096bf51603322760dc6a95e2eb82ac1 commit 65183faec89f3ef2c781f2ed6803e6ed5c365d48 commit b573cf88c0d0a1f71873ca36edf0e20d4b9a82a8 commit 7f599fed3b13fe97dcd6f68bf8a5c62abb91d0a4 commit 7c2551fa1dfdb06a9dd3a6c629086fe2c348e00a commit 0bc3137b2157115f328859477b463c912d605c3a commit 7386f88ab1732af890a09ab3a7f400bb20adbe5a commit bbcc3514ab4f7ec3ae2273ad08b0a1b6b4aa9dd9 commit c1ac2ea802f5adfd1d128fc01375af9c5f113932 commit 597364adc0fcf71617b3adbe647b6eec76e27554 commit 1626761ee4406c51d5afe9d47dd41a29e2049b71 commit f96c61fe0383d73732aba72fabb7e2c7ce0b0835 commit 6120611abc05dd850eff4eb3026f977ac7e34718 commit c627087cb164d1675323c7942fa29bded4263dfc commit 035d53e0f36da6ce49abf7bea3d9b30a075ff247 commit c265f340eaa87aa5f979adfb23d7463af67b7f27 commit cb841d27b8767fd88096d06186b5f5de990fd6d0 commit 15f9dfd545a1edd604648961feadce16791d0f4f commit a0b433c858ac1d2e03cbfd5bb34b9b61906600eb commit 2e656827ceed9fb1ba406e7cd11d7b572010add0 commit bd49f19039c1806cd10cff8aaec7f90ebf28f0e9 commit fd45b6540f513887c172e2082d437209fe8f4a54 commit eaa7d8301109092670c5cf3e12c502618d6adc51 commit 5daff15cd013422bc6d1efcfe82b586800025384 commit 731b48463b0d96eda1f1684eacde6e9c8065df83 commit cab69d36ccdbfa3fa0b5627a032150369c20b4f3 commit 27d196c4491458ca00014cfe1cfa9d0fa87a2ff9 commit 2d0ee64e9846ed4036fd11c5b900a21039ee8b7a commit 55682a893844cc64e3a85806b0c3ca7a77b905c3 commit 3537d6a48c50ed37e419f89931a5acdb6c56c6d6 commit fe56c6ee0457035ae8fbbc2aa5ddfcfac6ded787 commit 09d49e14ea6fd125a21f89b80f888c09be32a174 commit 11b92df8a2f7f4605ccc764ce6ae4a72760674df commit 9d65b1b4bcf3918164e17365eec169875eef8ee3 commit 4e70da985cef954cdf7813d651c067d2c602ea71 commit 80e709ee6ecc9eba8bd8d188218472822e1b38bd commit 3ffb193969c57afd4096cfb107ca2cc3bb0c55d9 commit 389c6b3e120303715c018d1bfc7bab02b50ca3f4 commit 57a8011512131c63cf700d42ef56ad875409a1a5 commit aeb3dd7e6f91da0a8c460d61fad13db85b3b33b7 commit 24e52fc20201c87912eee8f337829c036c3b0f3a commit 3b718dcaf163d17fe907ea098c8449e0cd6bc271 commit 54d020692b342f7bd02d7f5795fb5c401caecfcc commit 8d208a5eed4890f52a33ce847cbb8f8a5b1be6a7 commit 848a4e5c096ddf8ed1323123ae15b8d4318700ab commit 0976b3dc021b2c5392d6abf443460e4208f85fe6 commit 69f06e4fa098420e94f6970332e84f0ed493271c commit 901bdf5ea1a836400ee69aa32b04e9c209271ec7 commit 7df1ed6ddf3da52b020ef3c3f5597bc628c3e58e commit e871a70d8ccd6dbcb30f081f5d3d8854380422fe commit 68858328124162b9b42bc7b8232eee1915cc1d8f commit 30f90f3c1c2c63c2fa44f61233737d27b72637c2 commit c168feed5d0341b35b2f6a744f088e7625cfc1aa commit 41ce6d6d03d5e51420ea7732c83facc8a7f2e5da commit 17fbdbda9cc87ff5a013898de506212d25323ed7 commit e06da81749716ee3f0404fada97882609921d98f commit 8020f0f9316b6961fe384031b4780e764eeb9652 commit c069dbbcba7319c514536820f2782a0af3361811 commit 188d3f80fc6d8451ab5e570becd6a7b2d3033023 commit 8d8ffe3740b6de4a8a84817cd85195c533ed52b9 commit 59eddd4e215afc05f0610ebabfa05d4b099e5c13 commit 7a0e005c7957931689a327b2a4e7333a19f13f95 commit ee83c930974d4afb5fec3db638a8341b5d1cd3fa commit 3d8de40fd639c8be24e4aa557a98e20e1d09bdc3 commit be3a432a9d382a09e02c3359e4f6fcd991fe7d2a commit 5b4d93eaf6b44903f4c71b4f404f65317abd8d9c commit f308116676566b555ec3bab4c3f9eb20c1c9a5cb commit e8c49e9eead8620c7dd3c64a1f3bb44682325710 commit 1c982c9ffefd00120f2293bfd15fec5af475dc28 commit 4cc1cebe08bff0d2b75f16aa65ec61360e09a647 commit 299004271cbf0315da327c4bd67aec3e7041cb32 commit d62088ba314ecf098871874898ed760347d1fbd8 commit 196754951fc8187c64806d0807c467d6f435d0c5 commit ec7282bd2688c6c741c79f8696a68c6c0403cf2d commit da55037afde24d74a1a3f26e4d314f897f3432b4 commit bbe4418f22b9b20cf2654ca710e344955380e62c commit 0e69ef6ea82e8eece7d2b2b45a0da9670eaaefff commit f4bc8a43069c6268a49f064fdbf85ead5cc2bf04 commit a2c7356f526dba1aa5f49ba17c822e46dcf7d6f6 commit ddafc678913c4573d52f075af7d82152d431f322 commit e22821e6302780e2acaef7438cab828f68dde9d1 commit d50dc746ff72b9c48812dac3344fa87fbde940a3 commit fcdb3832a4edece23c043ce97b3a1f7647bec929 commit 8f7bd7010dd5bca920e9d3c0c040622b2e834b57 commit 7f80a88dd370777b86ff583f036c558c58c9f84c commit e6b27cf515a7813ca2228a9aec8e61d67fb9fbf0 commit fb120e84b00ad4371c13a0f31df773fbbb16b09f commit a1c23485b8ef40fbb9690fdf40f15bcb26c43e73 commit 47d4a680b8e2cf0502ee5a6d0191d3b7b1bdcad7 commit f9d9745a8603ad61937209c2431732b9abe444b7 commit 8b42e93b349c8fa18f3a27c56f04128657f47ff0 commit 9379c7a89f0cfbccdbe788fa189a8b29533489f6 commit 2e1e62c8e5e79bce38b574dd4281e6a27fd7f665 commit ebbb0b103efdcf9b682c7fe8ea84b1cf355304c6 commit d4a4ff1c8e4cd752b517af7317077939f3a25dfe commit 82a1f42f6aeb54e29b78aa0890ffd3087120264a commit 765663b7faaedf7750ff7e59c3ce5dc51fdd1fca commit 740f42a28f4cff9e009a17cc78666165ecca9293 commit e5df16d9428f5c6d2d0b1eff244d6c330ba9ef3a commit 71344a718a9fda8c551cdc4381d354f9a9907f6f commit fdc95df9c27dd4feb4bd74ac73e69eba49843db1 commit 121f17ac42df73f0869c1bdce090b31935ea37c8 commit 80a780ab279906ec4d3b3589bc324746f12d8dbd commit c39ca69b84acbfe0a9e09f62f78f8d769d849940 commit 4506f0bc15f42d22fc50f75a098ff9133ffdbe6f commit bcd9a5f8b9e2a705bc30e9b27ebf7b8a8625325f commit 6fac3964a9092f0ac797cb30cce5fd44f80e5a09 commit 38298ce6fc35c65ba1364e4221a289dfa07bf5ea commit 43aedbf4da1db9a9c2f9e160a4ae96dfda83774c commit e2ad8e2df432498b1cee2af04df605723f4d75e6 commit ca0b954a4315ca2228001c439ae1062561c81989 commit fe381726c96d9a7c2bd6eafa30f22e968f532cd1 commit b00f55374ccb3e3e9af6ee46761b74acb648440d commit 2eb841bdbca819017e7483cdfbb3d401751848a5 commit b13eb02ba8ba7617d41212121891756da31f1d8b commit 0a33b11d26c6b7e975b54d469a739ffac29f67ab commit 89fae8dc41d0a9bfc9fc1ea7ec03bf36e680774d commit e84e697d92d9d84ca13b4440cea36abe9a2fe079 commit 55bf196f60dfc89488c5645d112a9176c6fe4708 commit f88e295e9094deee93066f32a4380307e8cb3dd9 commit 71eaac368dccf0619f7adc012063930e459b133e commit 4f9b94d848696166011bead3109541ec2a523bb8 commit 6f582513ad15de729ee5c91dfef946f3c266a207 commit 4057e6ce3384e079f945a7f69797fc6c2864a90f commit 96cdb5384d962a7d3be598f0bc9e2be73796e80c commit 973fddea6f3e0d2f623f13fbd5d4d2b775e157f0 commit d297eedf83f5af96751c0da1e4355c19244a55a2 commit 0e41639d9a46b0285cd6381482037095f196d516 commit d728eda3c59daf2df71f9aae4bb2d3a1eef081da commit 5d1c70bb6e40c52ee1ff8aa786389919e6fbb09d commit 72f1de49ffb90b29748284f27f1d6b829ab1de95 commit 8e04cddf3b0ae37fb25267cfc054c1671e9ad6d4 commit bcbede6fbeb0e1eb85ccbb532faf06d3b31f0e73 commit cce3b573a52a41dd7face9dbf745f10f9bf4632b commit 2222dcb0775d36de28992f56455ab3967b30d380 commit 568c69ae2fea27e0152e4ffeee7c6f354c61810f commit 6716ccaf43e0fe2e759b84eb1cef4c684873a847 commit c33c794828f21217f72ce6fc140e0d34e0d56bff commit 21f773515902d8b303df650674ad1c5243beb245 commit cb359c639dc099ce4316cec9013fd4b2ebeb990c commit d57ba095e4f170963ec420d6cd780aa19459bc65 commit 274d4b96b12f78cef4f72a97a4967032233f6cae commit 2c56a751845ddfd3078ebe79981aaaa182629163 commit e30cb0599799aac099209e3b045379613c80730e commit 98703e4e061fb8715c7613cd227e32cdfd136b23 commit 4481913607e58196c48a4fef5e6f45350684ec3c commit 0c3855ba8dad41c4113e73f77eb926e44577e4af commit 1ff310b97f82437237a1d779195b0d90b90da070 commit ef3c36a6e025e9b16ca3321479ba016841fa17a0 commit 025654ae429112aabf6875870c06d6a7ee475104 commit 3ec61983aae0acbffbd5c22d83b2019f5c0eb516 commit 4e3f85d1c071ed174aa5a7477d499d576412df3b commit c09b3bf7363db982b17950b8e4f27b0564817301 commit 184d83848242b2465b466a0a8e6eb58f1df10407 commit 03d400e7605e3d36abd3f949b25ba806cccff0cb commit ea2c3c08554601b051d91403a241266e1cf490a5 commit fd21987274463a439c074b8f3c93d3b132e4c031 commit 44762718b391b5ad7bd226a7a3badfb93248ad3b commit acbe761046628cbd5da03a4af84e8831c2afb8f2 commit 65dae8ff4c7d5dde1016d1736c6740a0f80e68e3 commit 85e41f1ed5d94a26fe4e57003c399936d291ed70 commit bf0097c5c9aec528da75e2b5fcede472165322bb commit a99a4ff6ef205d125002fc7e0857074e4e6597b6 commit 0f48a4b83610cb0e4e0bc487800ab69f51b4aca6 commit c5f78ea8d768ce6f4471b0921728c2bd2dd95d93 commit 4a87495a82add04d57bef1d58dd0b55f10684ee0 commit c8f293541810e2542c5cbf082b7f7c2c2eaa47a8 commit 873bbf2da278f253df9fa78acb8df83fb05c7c52 commit 724617b94bd657d71f980c5bfe2d429fc0acc27b commit 2bf0ce3bec8b22e4bac828aeaeade15884fa0f5c commit 26518b39181876064850209ecdab48c0ee5924b1 commit 0250a7145e9c44c9f60d14aed7b66ed3a9de07f9 commit effee878a8661d7f4f497304ecf256e4b1790d1e commit ed83fe2abcace898fdec5c2ba0455703178ac9a3 commit 12a6e62bfdcad8be49644b6dcf70c15e0e6bab6b commit 111c1813a1ab70d5422594aec0fd5a5ba914c25e commit 1af3d0a8e8b8db855ee3c98d210f8ee01b2bb80f commit 8fb3e25c3dd1a2755c848ce7488c2f06a9fb9f97 commit 0b62af28f249b9c4036a05acfb053058dc02e2e2 commit 3291e09a463870610b8227f32b16b19a587edf33 commit f8a101ff09a70ec708b66b3f5bd4e7405283d14a commit db8b4968a8d0e86c0f8bd7541359a4111a5b39ad commit a6b4229d858ed4db6ad68854bb8a2f7d5ac9f138 commit 86b53032b180cc2cb6ec1460885f0769c47bff3f commit 5311892a0ad1d301aafd53ca0154091b3eb407ea commit 3e49de73fb89272dea01ba420c7ccbcf6b96aed7 commit 49ad6e913786fad6dd6209ef812437dc3009ebc4 commit 7aa83fbd712a6f08ffa67890061f26d140c2a84f commit e8188c461ee015ba0b9ab2fc82dbd5ebca5a5532 commit a590f03d8de7c4cb7ce4916dc7f2fd10711faabe commit 5b7826355e5b9f48eea29275215fc55165cd17c3 commit 6f612579be9d0ff527ca2e517e10bfaf08cc1860 commit 582c161cf38cf016cd573af6f087fa5fa786949b commit 6e17c6de3ddf3073741d9c91a796ee696914d8a0 commit ff7ddcf0db48a7d9ae536eb0875428117be1d1f1 commit 675285ad819293844018aa8096ba9a6d7c77b90b commit 1b722407a13b7f8658d2e26917791f32805980a2 commit 59bba51ec2a50e3dc5c3ee80f0a23207346303ff commit 1e6d5dea34325df8dc204575cd0726cd5f2b864f commit 1c519980aced3da1fae37c1339cf43b24eccdee7 commit fc133acc43728ad9777d2c4cc43f0cafcb92a461 commit 072030b1783056b5de8b0fac5303a5e9dbc6cfde commit 1d7776cc148b9f2f3ebaf1181662ba695a29f639 commit 2da0036ea99bccb27f7fe3cf2aa2900860e9be46 commit 4ff96bcc0d40b66bf3ddd6010830e9a4f9b85d53 commit 7f03b1d14d51371fcbb8acba2f8bf037cd8807fa commit b579ea632fcab97986f60d55a161c3e8e94a61cb commit 8ef84c1a68a83440b62f78a24f64ab100f6bff7a commit af22d6a869cc26b519bfdcd54293c53f2e491870 commit 570b295248b00c3cf4cf59e397de5cb2361e10c2 commit d4300362a66f2dacbf258e4ea233b79449821c24 commit 5c6d52ff4b61e5267b25be714eb5a9ba2a338199 commit 2036b34d4af9e09ed07f79c4e3f27952463e6f4e commit 2faa3653d6657aedf357ca74c4e58c5768899269 commit 2aafcdd6a68f30c85ba6a9600e8a7447c0228e51 commit cfc7d8314b7e8fd6bcafa31deaa21ac9ad19494f commit 274d205cb59f43815542e04b42a9e6d0b9b95eff commit c35b6ea8f2ecfa9d775530b70d4e727869099a9c commit cd2e31a9ab93d13c412a36c6e26811e0f830985b commit 1e66a17ce546eabad753178bbd4175cb52bafca8 commit 5efe0f3eed4f6eeb2a75285b48aee0a75399e6d8 commit 02ff519e99fc90f6c9aed50def1b6d65e20c1875 commit 50a7c8765ca69543ffdbf855de0fd69aea769ccf commit 2c7cd280e5c4a626690315a6fbb70b49124d8354 commit 67af691626425187822afe862614aefa304d3ff2 commit 803f31814f017de50f285efe90fecbb1668391a7 commit fc8e84a2408fd7bea6265e51545a8bfab1f4592d commit baf65745aad33812fe151d5c9a77cf360775bca4 commit 150c213139fe122c941e3990af7fbe9bd60c5ae3 commit d6149086b45e150c170beaa4546495fd1880724c commit 2dc84508f8c692d455b991a2feee85aa5d647568 commit a28eb4871acd4132a39a3e93b1e4f4bf500ffb41 commit 27fc10d1095f7a7de7c917638d7134033a190dd8 commit 1a3148b5f21b771c0ed362960fc97c92c6f9fc26 commit 1966bbfdfe476d271b338336254854c5edd5a907 commit f2c58529eca6edecf9dc1cab41ab367a83bfba7a commit 613a7956deb3b1ffa2810c6d4c90ee9c3d743dbb commit d5b5d6cb1d5ea7e2cf804aac40c23a860a2c28c3 commit c85c2c849ce776d5039a77d56936a216f9a07b57 commit b877934e5efc1ffd4f8098bb245853b3738e103f commit 064329c595da56eff6d7a7e7760660c726433139 commit b75efe88b20c2be28b67e2821a794cc183e32374 commit 2e54154b9f27262efd0cb4f903cc7d5ad1fe9628 commit f781f661e8c99b0cb34129f2e374234d61864e77 commit fdffb7dbc74f48cb1d404d9ab0c9fd769a59caf0 commit f6cf3883df471abbcf1553127681dc244c8ff8dd commit 00ae1491f970acc454be0df63f50942d94825860 commit 5874d11c29dbc2e9f21896c2635d0866e946c049 commit bd10668c5c68d8909526c591b57d75945026f529 commit 6725f33228077902ddac2a05e0ab361dee36e4ba commit 5133c9e51de41bfa902153888e11add3342ede18 commit 15008052b34efaa86c1d56190ac73c4bf8c462f9 commit a2848d08742c8e8494675892c02c0d22acbe3cf8 commit 2f98e686ef59b5d19af5847d755798e2031bee3a commit 5c413188c68da0e4bffc93de1c80257e20741e69 commit dde4c3d477d834212947f38519407df404acde4a commit 6bf0961a008ac74b085f1690fba8520ac3b253ee commit 113899c2669dff148b2a5bea4780123811aecc13 commit 27655b9bb9f0d9c32b8de8bec649b676898c52d5 commit 142256d2f41af6f7a9dbbe7db49eecc70858b1f7 commit d94303699921bda8141ad33554ae55b615ddd149 commit c177872cb056e0b499af4717d8d1977017fd53df commit d934e537c14bfe1227ced6341472571f354383e8 commit 8a774fe912ff09e39c2d3a3589c729330113f388 commit dcb489bae65d92cfd26da22c7a0d6665b06ecc63 commit 31c7a3b378a136adc63296a2ff17645896fcf303 commit 188623076d0f1a500583d392b6187056bf7cc71a commit e701156ccc6c7a5f104a968dda74cd6434178712 commit 938a06c8b7913455073506c33ae3bff029c3c4ef commit 835a65f51790e1f72b1ab106ec89db9ac15b47d6 commit c2a88e8bdf5f6239948d75283d0ae7e0c7945b03 commit 2329cc7a101af1a844fbf706c0724c0baea38365 commit 864e029fea2b8e6583e026a6f93e8933ba626d42 commit 38d88d5e97c9032ebeca092b9372209f2ca92cdf commit 05abb3be91d8788328231ee02973ab3d47f5e3d2 commit 785b3f667b4bf98804cad135005e964df0c750de commit 2c27770a7bc88ef7f6614d11d96d8e62017d0b78 commit 60a2dae4902015f43d144f5a4710f655b2955b9b commit 2ed5a4c4615b47c70dcd8d7d942207e5a607561d commit d1792509e1031a6750f82bc7faa5fc9d7203b5b7 commit b42ae87a7b3878afaf4c3852ca66c025a5b996e0 commit 1ca67aba8d11c2849d395013e1fdce02918d5657 commit a4eb11824170d742531998f4ebd1c6a18b63db47 commit 068c8bb10f37bb84824625dbbda053a3a3e0d6e1 commit b9c2213cdf254fba71b6bd602a0afe051e554ad9 commit 87279fdf5ee0ad1360765ef70389d1c4d0f81bb6 commit 4f6d9e38c4d244ad106eb9ebd8c0e1215e866f35 commit 5a25cefc0920088bb9afafeb80ad3dcd84fe278b commit a460beefe77d780ac48f19d39333852a7f93ffc1 commit 2a9482e55968ed7368afaa9c2133404069117320 commit 2387ccf43e3c6cb5dbd757c5ef410cca9f14b971 commit dcaa32e1f58473b9f4ac566fadd326956be83138 commit 8ecee4cbc72b53551c1d33251a48c912d70282ea commit 8e78127143086bd89aa099740c1767d64fe80631 commit b13d3e9c6b62597a5c31fdc74febb3bc588893bf commit ccff6d117d8dc8d8d86e8695a75e5f8b01e573bf commit 752a281032b2d6f4564be827e082bde6f7d2fd4f commit 2b5d1c29f6c4cb19369ef92881465e5ede75f4ef commit ea293f823a8805735d9e00124df81a8f448ed1ae commit f4f19c03cfb99b587cf35ff057be97cb98c5d251 commit 534a7915c6043c4abc3e4f44bc30576b361fa2e3 commit 28801cc85906ea62043e62c71def7f9daaf1c168 commit f7e3a1bafdea735050dfde00523cf505dc7fd309 commit 4e076c73e4f6e90816b30fcd4a0d7ab365087255 commit 3844ed5e78823eebb5f0f1edefc403310693d402 commit e354f67733115b4453268f61e6e072e9b1ea7a2f commit 39b1320e5dc2b707dfb5c25b0298ce9d4fc05aea commit 602816c3ee3fdbf4a72cb4d2e5b8b756a5104b0f commit 9beb223f2a3d1bb2cc4dff71b9750d2b82f01ae5 commit c01aebeef3ce45f696ffa0a1303cea9b34babb45 commit 4a37c55b859a69f429bfa7fab4fc43ee470b60ed commit 25b054c3c89cb6a7106a7982f0f70e83d0797dab commit 4509e69a07761d08df7c46d4a08c8222522b1933 commit de612738e9771bd66aeb20044486c457c512f684 commit 38ac4e8385ffb275b1837986ca6c16f26ea028c5 commit bc1688fce2ec7726112276650762275392d1bab1 commit 2dedcf414bb01b8d966eb445db1d181d92304fb2 commit 8e4bc0284cd8df25556671796acea5442f246dfb commit 75da46c1fad5f88e24c08995f6e303e9b9fe8f12 commit 0dd9c514d2ce19c896daffd76de008a68982de23 commit 46d14e17095237007b59f56aae2d81ae2dcb0f93 commit d14560ac1b595aa2e792365e91fea6aeaee66c2b commit b2f59e9026038a5bbcbc0019fa58f963138211ee commit 78a6ccd65fa3a7cc697810db079cc4b84dff03d5 commit 592b228f12e15867a63e3a6eeeb54c5c12662a62 commit 824df77ab2107d8d4740b834b276681a41ae1ac8 commit 0fde2f23516a00fd90dfb980b66b4665fcbfa659 commit 6a35f22d222528e1b157c6978c9424d2f8cbe0a1 commit a337b64f0d5717248a0c894e2618e658e6a9de9f commit 0bc057eae2610c275361766a064a23cc2758f3ff commit c71b7aa8619a0c9700132d0733e33999fb614339 commit e9d699af3f65d62cf195f0e7a039400093ab2af2 commit 1cb9e2ef66d53b020842b18762e30d0eb4384de8 commit e4060dad253352382b20420d8ef98daab24dbc17 commit 421dabcad1c69e02a41c0d601aefbc29ee3f5368 commit 062ff85b11da63ecccf7c17778ad225e7b5d06bf commit 1958b0f95a35e4443573c4c3ec2efd89d2d00d82 commit 3c6bd1b7e2043fb00ce6b622709d176609431406 commit d5712cd22b9cf109fded1b7f178f4c1888c8b84b commit 08fffa74d9772d9538338be3f304006c94dde6f0 commit 730d44e1fa306a20746ad4a85da550662aed9daa commit d3de41ee5febe5c2d9989fe9810bce2bb54a3a8e commit 7ad1dfc144cbf62702fd07838da8fd8a77921083 commit bd60e2eafd8fb053948b6e23e8167baf7a159750 commit 61319b8e3b58a7167cf146313fd4523fe72586bc commit 96b020e2163fb2197266b2f71b1007495206e6bb commit a73ea79a0c94bacfab4df23a1043644d14f56591 commit 90e065677e0362a777b9db97ea21d43a39211399 commit 3bb575572bf498a9d39e9d1ca5c06cc3152928a1 commit 2e91e731f24817bc55f9c9acc95a8939c4077b05 commit a6dea2d64ff92851e68cd4e20a35f6534286e016 commit 616f92d188ee7142a95a52068efdbea82645f859 commit 091ae5473f96ced844af6ba39b94757359b12348 commit 07dd476f6116966cb2006e25fdcf48f0715115ff commit 8ba371c778cbb3f0399b8ba8919bf89e462cdda3 commit fbe8ff726a1de82d87524f306b0f6491e13d7dfa commit ae6546835efaa7195aaaa10e5ff4e695cd82a816 commit e8470c0a7bcaa82f78ad34282d662dd7bd9630c2 commit 5598c9bfdb81f40f2f5d769b342d25bff74b07a6 commit 2002eb6d3ea954dde9f8a223018d5335779937d0 commit 423ffe62c06ae241ad460f4629dddb9dcf55e060 commit b6360a5ec31d160d58c1a64387b323b556cedca8 commit 0d6f374c0c66e8ecc2897f0837d2cb4bd169bb42 commit 6a92761a86817ad15c9a562e2a809386237fae3e commit 8d036427f0042a91136e6f19a39542eedec4e96c commit d621114ffba56b032e91ee82d6469b2f9f0b2427 commit b25fdc048cb2250c7e859184f54d3261b55ad099 commit f1740b1ab2703b2a057da7cf33b03297e0381aa0 commit a7b7d9e8aee4f71b4c7151702fd74237b8cef989 commit 6ecc10295abb2fdd9c21dd17b34e4cacfd829cd4 commit 1b254b791d7b7dea6e8adc887fbbd51746d8bb27 commit 50b6f2c8297793f7f3315623db78dcff85158e96 commit dd64d8ae0f8f271e8629e9d2ba9971081583c394 commit be48306f764dc84906a5054e60e6cfa9889fb44d commit 68c60b343301c5a150e6da4c0c9e4123b2b9c017 commit c611589b4259ed63b9b77be6872b1ce07ec0ac16 commit 20c827683de05a6c7e7ae7fae586899690693251 commit 5ad1ab30ac0809d2963ddcf39ac34317a24a2f17 commit 2872144aec04baa7e43ecd2a60f7f0be3aa843fd commit e0d25c591ac676ece0e1ad6bbd72a159b9355598 commit e531fdb5cd5ee2564b7fe10c8a9219e2b2fac61e commit 14abdfae508228a7307f7491b5c4215ae70c6542 commit f9e96bf1905479f18e83a3a4c314a8dfa56ede2c commit a94e7ccfc400c024976f3c2f31689ed843498b7c commit 1dcc437427bbcebc8381226352f7ade08a271191 commit ce22e89eb0f541b9998f67bd51d311275a3ee51a commit 59fe2029b9e05cd490eaf972053dd86f96f77869 Signed-off-by: Mika Penttilä <mpenttil@redhat.com>
2023-09-04 08:27:27 +00:00
bool itc;
unsigned char pixel_repeat;
enum hdmi_colorspace colorspace;
enum hdmi_scan_mode scan_mode;
enum hdmi_colorimetry colorimetry;
enum hdmi_picture_aspect picture_aspect;
enum hdmi_active_aspect active_aspect;
enum hdmi_extended_colorimetry extended_colorimetry;
enum hdmi_quantization_range quantization_range;
enum hdmi_nups nups;
unsigned char video_code;
enum hdmi_ycc_quantization_range ycc_quantization_range;
enum hdmi_content_type content_type;
unsigned short top_bar;
unsigned short bottom_bar;
unsigned short left_bar;
unsigned short right_bar;
};
/* DRM Infoframe as per CTA 861.G spec */
struct hdmi_drm_infoframe {
enum hdmi_infoframe_type type;
unsigned char version;
unsigned char length;
enum hdmi_eotf eotf;
enum hdmi_metadata_type metadata_type;
struct {
u16 x, y;
} display_primaries[3];
struct {
u16 x, y;
} white_point;
u16 max_display_mastering_luminance;
u16 min_display_mastering_luminance;
u16 max_cll;
u16 max_fall;
};
void hdmi_avi_infoframe_init(struct hdmi_avi_infoframe *frame);
ssize_t hdmi_avi_infoframe_pack(struct hdmi_avi_infoframe *frame, void *buffer,
size_t size);
ssize_t hdmi_avi_infoframe_pack_only(const struct hdmi_avi_infoframe *frame,
void *buffer, size_t size);
int hdmi_avi_infoframe_check(struct hdmi_avi_infoframe *frame);
int hdmi_drm_infoframe_init(struct hdmi_drm_infoframe *frame);
ssize_t hdmi_drm_infoframe_pack(struct hdmi_drm_infoframe *frame, void *buffer,
size_t size);
ssize_t hdmi_drm_infoframe_pack_only(const struct hdmi_drm_infoframe *frame,
void *buffer, size_t size);
int hdmi_drm_infoframe_check(struct hdmi_drm_infoframe *frame);
int hdmi_drm_infoframe_unpack_only(struct hdmi_drm_infoframe *frame,
const void *buffer, size_t size);
enum hdmi_spd_sdi {
HDMI_SPD_SDI_UNKNOWN,
HDMI_SPD_SDI_DSTB,
HDMI_SPD_SDI_DVDP,
HDMI_SPD_SDI_DVHS,
HDMI_SPD_SDI_HDDVR,
HDMI_SPD_SDI_DVC,
HDMI_SPD_SDI_DSC,
HDMI_SPD_SDI_VCD,
HDMI_SPD_SDI_GAME,
HDMI_SPD_SDI_PC,
HDMI_SPD_SDI_BD,
HDMI_SPD_SDI_SACD,
HDMI_SPD_SDI_HDDVD,
HDMI_SPD_SDI_PMP,
};
struct hdmi_spd_infoframe {
enum hdmi_infoframe_type type;
unsigned char version;
unsigned char length;
char vendor[8];
char product[16];
enum hdmi_spd_sdi sdi;
};
int hdmi_spd_infoframe_init(struct hdmi_spd_infoframe *frame,
const char *vendor, const char *product);
ssize_t hdmi_spd_infoframe_pack(struct hdmi_spd_infoframe *frame, void *buffer,
size_t size);
ssize_t hdmi_spd_infoframe_pack_only(const struct hdmi_spd_infoframe *frame,
void *buffer, size_t size);
int hdmi_spd_infoframe_check(struct hdmi_spd_infoframe *frame);
enum hdmi_audio_coding_type {
HDMI_AUDIO_CODING_TYPE_STREAM,
HDMI_AUDIO_CODING_TYPE_PCM,
HDMI_AUDIO_CODING_TYPE_AC3,
HDMI_AUDIO_CODING_TYPE_MPEG1,
HDMI_AUDIO_CODING_TYPE_MP3,
HDMI_AUDIO_CODING_TYPE_MPEG2,
HDMI_AUDIO_CODING_TYPE_AAC_LC,
HDMI_AUDIO_CODING_TYPE_DTS,
HDMI_AUDIO_CODING_TYPE_ATRAC,
HDMI_AUDIO_CODING_TYPE_DSD,
HDMI_AUDIO_CODING_TYPE_EAC3,
HDMI_AUDIO_CODING_TYPE_DTS_HD,
HDMI_AUDIO_CODING_TYPE_MLP,
HDMI_AUDIO_CODING_TYPE_DST,
HDMI_AUDIO_CODING_TYPE_WMA_PRO,
HDMI_AUDIO_CODING_TYPE_CXT,
};
enum hdmi_audio_sample_size {
HDMI_AUDIO_SAMPLE_SIZE_STREAM,
HDMI_AUDIO_SAMPLE_SIZE_16,
HDMI_AUDIO_SAMPLE_SIZE_20,
HDMI_AUDIO_SAMPLE_SIZE_24,
};
enum hdmi_audio_sample_frequency {
HDMI_AUDIO_SAMPLE_FREQUENCY_STREAM,
HDMI_AUDIO_SAMPLE_FREQUENCY_32000,
HDMI_AUDIO_SAMPLE_FREQUENCY_44100,
HDMI_AUDIO_SAMPLE_FREQUENCY_48000,
HDMI_AUDIO_SAMPLE_FREQUENCY_88200,
HDMI_AUDIO_SAMPLE_FREQUENCY_96000,
HDMI_AUDIO_SAMPLE_FREQUENCY_176400,
HDMI_AUDIO_SAMPLE_FREQUENCY_192000,
};
enum hdmi_audio_coding_type_ext {
/* Refer to Audio Coding Type (CT) field in Data Byte 1 */
HDMI_AUDIO_CODING_TYPE_EXT_CT,
/*
* The next three CXT values are defined in CEA-861-E only.
* They do not exist in older versions, and in CEA-861-F they are
* defined as 'Not in use'.
*/
HDMI_AUDIO_CODING_TYPE_EXT_HE_AAC,
HDMI_AUDIO_CODING_TYPE_EXT_HE_AAC_V2,
HDMI_AUDIO_CODING_TYPE_EXT_MPEG_SURROUND,
/* The following CXT values are only defined in CEA-861-F. */
HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC,
HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC_V2,
HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_AAC_LC,
HDMI_AUDIO_CODING_TYPE_EXT_DRA,
HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC_SURROUND,
HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_AAC_LC_SURROUND = 10,
};
struct hdmi_audio_infoframe {
enum hdmi_infoframe_type type;
unsigned char version;
unsigned char length;
unsigned char channels;
enum hdmi_audio_coding_type coding_type;
enum hdmi_audio_sample_size sample_size;
enum hdmi_audio_sample_frequency sample_frequency;
enum hdmi_audio_coding_type_ext coding_type_ext;
unsigned char channel_allocation;
unsigned char level_shift_value;
bool downmix_inhibit;
};
int hdmi_audio_infoframe_init(struct hdmi_audio_infoframe *frame);
ssize_t hdmi_audio_infoframe_pack(struct hdmi_audio_infoframe *frame,
void *buffer, size_t size);
ssize_t hdmi_audio_infoframe_pack_only(const struct hdmi_audio_infoframe *frame,
void *buffer, size_t size);
Merge DRM changes from upstream v6.0.8..v6.1 NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v6.1 2160457 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2160457 Conflicts: drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c drivers/gpu/drm/amd/amdgpu/amdgpu_job.c drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c drivers/gpu/drm/amd/amdkfd/kfd_migrate.c drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c drivers/gpu/drm/amd/display/dc/dcn321/dcn321_resource.c drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c drivers/gpu/drm/ast/ast_mode.c drivers/gpu/drm/i915/display/intel_display.c drivers/gpu/drm/i915/gt/intel_gt_sysfs.c drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c drivers/gpu/drm/i915/gt/intel_workarounds.c drivers/gpu/drm/i915/gt/uc/intel_guc.c drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c drivers/gpu/drm/i915/gt/uc/intel_guc_log.c drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c drivers/gpu/drm/i915/gvt/kvmgt.c drivers/gpu/drm/mgag200/mgag200_pll.c Conflict resolution: diff --cc drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h index ecb8db731081,253ea6b159df..6ebed4d58ced --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h @@@ -162,6 -162,7 +162,8 @@@ #define AMDGPU_VCN_FW_LOGGING_FLAG (1 << 10) #define AMDGPU_VCN_SMU_VERSION_INFO_FLAG (1 << 11) #define AMDGPU_VCN_SMU_DPM_INTERFACE_FLAG (1 << 11) ++#define AMDGPU_VCN_SMU_DPM_INTERFACE_FLAG (1 << 11) + #define AMDGPU_VCN_VF_RB_SETUP_FLAG (1 << 14) #define AMDGPU_VCN_IB_FLAG_DECODE_BUFFER 0x00000001 #define AMDGPU_VCN_CMD_FLAG_MSG_BUFFER 0x00000001 diff --cc drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c index 3128c111c619,d0b46a3e0155..6f6f6e5ad14b --- a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c +++ b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c @@@ -206,8 -206,7 +206,8 @@@ static bool dcn32_check_no_memory_reque */ static uint32_t dcn32_calculate_cab_allocation(struct dc *dc, struct dc_state *ctx) { - uint8_t i; - int j; ++ + int i, j; struct dc_stream_state *stream = NULL; struct dc_plane_state *plane = NULL; uint32_t cursor_size = 0; @@@ -237,24 -236,24 +237,27 @@@ mblk_width = DCN3_2_MBLK_WIDTH; mblk_height = bytes_per_pixel == 4 ? DCN3_2_MBLK_HEIGHT_4BPE : DCN3_2_MBLK_HEIGHT_8BPE; ++ /* full_vp_width_blk_aligned = FLOOR(vp_x_start + full_vp_width + blk_width - 1, blk_width) - * FLOOR(vp_x_start, blk_width) * * mall_alloc_width_blk_aligned_l/c = full_vp_width_blk_aligned_l/c */ mall_alloc_width_blk_aligned = ((pipe->plane_res.scl_data.viewport.x + - pipe->plane_res.scl_data.viewport.width + mblk_width - 1) / mblk_width * mblk_width) + + pipe->plane_res.scl_data.viewport.width + mblk_width - 1) / mblk_width * mblk_width) - (pipe->plane_res.scl_data.viewport.x / mblk_width * mblk_width); ++ /* full_vp_height_blk_aligned = FLOOR(vp_y_start + full_vp_height + blk_height - 1, blk_height) - * FLOOR(vp_y_start, blk_height) * * mall_alloc_height_blk_aligned_l/c = full_vp_height_blk_aligned_l/c */ mall_alloc_height_blk_aligned = ((pipe->plane_res.scl_data.viewport.y + - pipe->plane_res.scl_data.viewport.height + mblk_height - 1) / mblk_height * mblk_height) + + pipe->plane_res.scl_data.viewport.height + mblk_height - 1) / mblk_height * mblk_height) - (pipe->plane_res.scl_data.viewport.y / mblk_height * mblk_height); ++ num_mblks = ((mall_alloc_width_blk_aligned + mblk_width - 1) / mblk_width) * ((mall_alloc_height_blk_aligned + mblk_height - 1) / mblk_height); diff --cc drivers/gpu/drm/ast/ast_mode.c index b93181a42048,1bc0220e6783..ae5a4cce972f --- a/drivers/gpu/drm/ast/ast_mode.c +++ b/drivers/gpu/drm/ast/ast_mode.c @@@ -42,9 -40,8 +42,8 @@@ #include <drm/drm_fourcc.h> #include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_framebuffer_helper.h> -#include <drm/drm_gem_vram_helper.h> +#include <drm/drm_gem_shmem_helper.h> #include <drm/drm_managed.h> - #include <drm/drm_plane_helper.h> #include <drm/drm_probe_helper.h> #include <drm/drm_simple_kms_helper.h> @@@ -604,31 -550,31 +603,31 @@@ static const uint32_t ast_primary_plane static int ast_primary_plane_helper_atomic_check(struct drm_plane *plane, struct drm_atomic_state *state) { - struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state, - plane); - struct drm_crtc_state *crtc_state; - struct ast_crtc_state *ast_crtc_state; + struct drm_device *dev = plane->dev; + struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state, plane); + struct drm_crtc_state *new_crtc_state = NULL; + struct ast_crtc_state *new_ast_crtc_state; int ret; - if (!new_plane_state->crtc) - return 0; - - crtc_state = drm_atomic_get_new_crtc_state(state, - new_plane_state->crtc); + if (new_plane_state->crtc) + new_crtc_state = drm_atomic_get_new_crtc_state(state, new_plane_state->crtc); - ret = drm_atomic_helper_check_plane_state(new_plane_state, crtc_state, + ret = drm_atomic_helper_check_plane_state(new_plane_state, new_crtc_state, - DRM_PLANE_HELPER_NO_SCALING, - DRM_PLANE_HELPER_NO_SCALING, + DRM_PLANE_NO_SCALING, + DRM_PLANE_NO_SCALING, false, true); - if (ret) + if (ret) { return ret; + } else if (!new_plane_state->visible) { + if (drm_WARN_ON(dev, new_plane_state->crtc)) /* cannot legally happen */ + return -EINVAL; + else + return 0; + } - if (!new_plane_state->visible) - return 0; - - ast_crtc_state = to_ast_crtc_state(crtc_state); + new_ast_crtc_state = to_ast_crtc_state(new_crtc_state); - ast_crtc_state->format = new_plane_state->fb->format; + new_ast_crtc_state->format = new_plane_state->fb->format; return 0; } @@@ -850,22 -774,29 +849,22 @@@ static const uint32_t ast_cursor_plane_ static int ast_cursor_plane_helper_atomic_check(struct drm_plane *plane, struct drm_atomic_state *state) { - struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state, - plane); - struct drm_framebuffer *fb = new_plane_state->fb; - struct drm_crtc_state *crtc_state; + struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state, plane); + struct drm_framebuffer *new_fb = new_plane_state->fb; + struct drm_crtc_state *new_crtc_state = NULL; int ret; - if (!new_plane_state->crtc) - return 0; - - crtc_state = drm_atomic_get_new_crtc_state(state, - new_plane_state->crtc); + if (new_plane_state->crtc) + new_crtc_state = drm_atomic_get_new_crtc_state(state, new_plane_state->crtc); - ret = drm_atomic_helper_check_plane_state(new_plane_state, crtc_state, + ret = drm_atomic_helper_check_plane_state(new_plane_state, new_crtc_state, - DRM_PLANE_HELPER_NO_SCALING, - DRM_PLANE_HELPER_NO_SCALING, + DRM_PLANE_NO_SCALING, + DRM_PLANE_NO_SCALING, true, true); - if (ret) + if (ret || !new_plane_state->visible) return ret; - if (!new_plane_state->visible) - return 0; - - if (fb->width > AST_MAX_HWC_WIDTH || fb->height > AST_MAX_HWC_HEIGHT) + if (new_fb->width > AST_MAX_HWC_WIDTH || new_fb->height > AST_MAX_HWC_HEIGHT) return -EINVAL; return 0; diff --cc drivers/gpu/drm/i915/display/intel_display.c index bd629f2da6eb,de77054195c6..d3bfa2a675b8 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@@ -3724,9 -3730,9 +3730,10 @@@ static u8 bigjoiner_pipes(struct drm_i9 else if (DISPLAY_VER(i915) >= 11) pipes = BIT(PIPE_B) | BIT(PIPE_C); else ++ pipes = 0; - return pipes & RUNTIME_INFO(i915)->pipe_mask; + return pipes & INTEL_INFO(i915)->display.pipe_mask; } static bool transcoder_ddi_func_is_enabled(struct drm_i915_private *dev_priv, diff --cc drivers/gpu/drm/i915/gt/intel_gt_sysfs.c index 1e52ea387dc5,d651ccd0ab20..fb733fa8a491 --- a/drivers/gpu/drm/i915/gt/intel_gt_sysfs.c +++ b/drivers/gpu/drm/i915/gt/intel_gt_sysfs.c @@@ -22,14 -22,11 +22,9 @@@ bool is_object_gt(struct kobject *kobj return !strncmp(kobj->name, "gt", 2); } - static struct intel_gt *kobj_to_gt(struct kobject *kobj) - { - return container_of(kobj, struct intel_gt, sysfs_gt); - } - -struct intel_gt *intel_gt_sysfs_get_drvdata(struct device *dev, +struct intel_gt *intel_gt_sysfs_get_drvdata(struct kobject *kobj, const char *name) { - struct kobject *kobj = &dev->kobj; - /* * We are interested at knowing from where the interface * has been called, whether it's called from gt/ or from diff --cc drivers/gpu/drm/i915/gt/intel_gt_sysfs.h index 6bee2c6a894d,6232923a420d..c3a123faee98 --- a/drivers/gpu/drm/i915/gt/intel_gt_sysfs.h +++ b/drivers/gpu/drm/i915/gt/intel_gt_sysfs.h @@@ -22,9 -23,14 +23,14 @@@ intel_gt_create_kobj(struct intel_gt *g struct kobject *dir, const char *name); + static inline struct intel_gt *kobj_to_gt(struct kobject *kobj) + { + return container_of(kobj, struct intel_gt, sysfs_gt); + } + void intel_gt_sysfs_register(struct intel_gt *gt); void intel_gt_sysfs_unregister(struct intel_gt *gt); -struct intel_gt *intel_gt_sysfs_get_drvdata(struct device *dev, +struct intel_gt *intel_gt_sysfs_get_drvdata(struct kobject *kobj, const char *name); #endif /* SYSFS_GT_H */ diff --cc drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c index 1fef52e7c2c8,180dd6f3ef57..426da98a96ed --- a/drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c +++ b/drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c @@@ -682,10 -726,37 +682,39 @@@ static const struct attribute *media_pe NULL }; + static ssize_t + default_min_freq_mhz_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) + { + struct intel_gt *gt = kobj_to_gt(kobj->parent); + + return sysfs_emit(buf, "%u\n", gt->defaults.min_freq); + } + + static struct kobj_attribute default_min_freq_mhz = + __ATTR(rps_min_freq_mhz, 0444, default_min_freq_mhz_show, NULL); + + static ssize_t + default_max_freq_mhz_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) + { + struct intel_gt *gt = kobj_to_gt(kobj->parent); + + return sysfs_emit(buf, "%u\n", gt->defaults.max_freq); + } + + static struct kobj_attribute default_max_freq_mhz = + __ATTR(rps_max_freq_mhz, 0444, default_max_freq_mhz_show, NULL); + + static const struct attribute * const rps_defaults_attrs[] = { + &default_min_freq_mhz.attr, + &default_max_freq_mhz.attr, + NULL + }; + -static int intel_sysfs_rps_init(struct intel_gt *gt, struct kobject *kobj, - const struct attribute * const *attrs) +static int intel_sysfs_rps_init(struct intel_gt *gt, struct kobject *kobj) { + const struct attribute * const *attrs; + struct attribute *vlv_attr; int ret; if (GRAPHICS_VER(gt->i915) < 6) diff --cc drivers/gpu/drm/i915/gt/intel_lrc.c index 070cec4ff8a4,3955292483a6..d3ac73c3559f --- a/drivers/gpu/drm/i915/gt/intel_lrc.c +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c @@@ -1278,12 -1298,13 +1298,17 @@@ gen12_emit_indirect_ctx_rcs(const struc /* hsdes: 1809175790 */ if (!HAS_FLAT_CCS(ce->engine->i915)) - cs = gen12_emit_aux_table_inv(cs, GEN12_GFX_CCS_AUX_NV); + cs = gen12_emit_aux_table_inv(ce->engine->gt, + cs, GEN12_GFX_CCS_AUX_NV); + + /* Wa_16014892111 */ + if (IS_DG2(ce->engine->i915)) + cs = dg2_emit_draw_watermark_setting(cs); + /* Wa_16014892111 */ + if (IS_DG2(ce->engine->i915)) + cs = dg2_emit_draw_watermark_setting(cs); + return cs; } diff --cc drivers/gpu/drm/i915/gt/intel_workarounds.c index 1b6479b5bd32,a821e3d405db..21cd1a4e1823 --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c @@@ -2108,15 -2108,18 +2108,22 @@@ rcs_engine_wa_init(struct intel_engine_ if (IS_DG2_GRAPHICS_STEP(i915, G11, STEP_A0, STEP_B0)) { /* Wa_14013392000:dg2_g11 */ wa_masked_en(wal, GEN7_ROW_CHICKEN2, GEN12_ENABLE_LARGE_GRF_MODE); + } - /* Wa_16011620976:dg2_g11 */ - wa_write_or(wal, LSC_CHICKEN_BIT_0_UDW, DIS_CHAIN_2XSIMD8); + if (IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || + IS_DG2_G11(i915) || IS_DG2_G12(i915)) { + /* Wa_1509727124:dg2 */ + wa_masked_en(wal, GEN10_SAMPLER_MODE, + SC_DISABLE_POWER_OPTIMIZATION_EBB); } + if (IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || + IS_DG2_G11(i915) || IS_DG2_G12(i915)) { + /* Wa_1509727124:dg2 */ + wa_masked_en(wal, GEN10_SAMPLER_MODE, + SC_DISABLE_POWER_OPTIMIZATION_EBB); + } + if (IS_DG2_GRAPHICS_STEP(i915, G10, STEP_A0, STEP_B0) || IS_DG2_GRAPHICS_STEP(i915, G11, STEP_A0, STEP_B0)) { /* Wa_14012419201:dg2 */ diff --cc drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c index 844dee09a321,1db59eeb34db..1ac0e66d39e5 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c @@@ -4209,103 -4177,18 +4185,111 @@@ int intel_guc_submission_setup(struct i return 0; } +struct scheduling_policy { + /* internal data */ + u32 max_words, num_words; + u32 count; + /* API data */ + struct guc_update_scheduling_policy h2g; +}; + +static u32 __guc_scheduling_policy_action_size(struct scheduling_policy *policy) +{ + u32 *start = (void *)&policy->h2g; + u32 *end = policy->h2g.data + policy->num_words; + size_t delta = end - start; + + return delta; +} + +static struct scheduling_policy *__guc_scheduling_policy_start_klv(struct scheduling_policy *policy) +{ + policy->h2g.header.action = INTEL_GUC_ACTION_UPDATE_SCHEDULING_POLICIES_KLV; + policy->max_words = ARRAY_SIZE(policy->h2g.data); + policy->num_words = 0; + policy->count = 0; + + return policy; +} + +static void __guc_scheduling_policy_add_klv(struct scheduling_policy *policy, + u32 action, u32 *data, u32 len) +{ + u32 *klv_ptr = policy->h2g.data + policy->num_words; + + GEM_BUG_ON((policy->num_words + 1 + len) > policy->max_words); + *(klv_ptr++) = FIELD_PREP(GUC_KLV_0_KEY, action) | + FIELD_PREP(GUC_KLV_0_LEN, len); + memcpy(klv_ptr, data, sizeof(u32) * len); + policy->num_words += 1 + len; + policy->count++; +} + +static int __guc_action_set_scheduling_policies(struct intel_guc *guc, + struct scheduling_policy *policy) +{ + int ret; + + ret = intel_guc_send(guc, (u32 *)&policy->h2g, + __guc_scheduling_policy_action_size(policy)); + if (ret < 0) + return ret; + + if (ret != policy->count) { + drm_warn(&guc_to_gt(guc)->i915->drm, "GuC global scheduler policy processed %d of %d KLVs!", + ret, policy->count); + if (ret > policy->count) + return -EPROTO; + } + + return 0; +} + +static int guc_init_global_schedule_policy(struct intel_guc *guc) +{ + struct scheduling_policy policy; + struct intel_gt *gt = guc_to_gt(guc); + intel_wakeref_t wakeref; + int ret = 0; + + if (GET_UC_VER(guc) < MAKE_UC_VER(70, 3, 0)) + return 0; + + __guc_scheduling_policy_start_klv(&policy); + + with_intel_runtime_pm(&gt->i915->runtime_pm, wakeref) { + u32 yield[] = { + GLOBAL_SCHEDULE_POLICY_RC_YIELD_DURATION, + GLOBAL_SCHEDULE_POLICY_RC_YIELD_RATIO, + }; + + __guc_scheduling_policy_add_klv(&policy, + GUC_SCHEDULING_POLICIES_KLV_ID_RENDER_COMPUTE_YIELD, + yield, ARRAY_SIZE(yield)); + + ret = __guc_action_set_scheduling_policies(guc, &policy); + if (ret) + i915_probe_error(gt->i915, + "Failed to configure global scheduling policies: %pe!\n", + ERR_PTR(ret)); + } + + return ret; +} + void intel_guc_submission_enable(struct intel_guc *guc) { + struct intel_gt *gt = guc_to_gt(guc); + + /* Enable and route to GuC */ + if (GRAPHICS_VER(gt->i915) >= 12) + intel_uncore_write(gt->uncore, GEN12_GUC_SEM_INTR_ENABLES, + GUC_SEM_INTR_ROUTE_TO_GUC | + GUC_SEM_INTR_ENABLE_ALL); + guc_init_lrc_mapping(guc); guc_init_engine_stats(guc); + guc_init_global_schedule_policy(guc); } void intel_guc_submission_disable(struct intel_guc *guc) diff --cc drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c index fb309ae43001,b91ad4aede1f..24aac2f32dd1 --- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c @@@ -339,6 -347,6 +347,7 @@@ bad fw_blobs[i].blob.patch); uc_fw->file_selected.path = NULL; ++ } } } diff --cc drivers/gpu/drm/panel/panel-sitronix-st7701.c index 098955526b68,c481daa4bbce..38a0ba4a1b3f --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c @@@ -384,18 -762,10 +762,18 @@@ static int st7701_dsi_probe(struct mipi st7701->dsi = dsi; st7701->desc = desc; - return mipi_dsi_attach(dsi); + ret = mipi_dsi_attach(dsi); + if (ret) + goto err_attach; + + return 0; + +err_attach: + drm_panel_remove(&st7701->panel); + return ret; } - static int st7701_dsi_remove(struct mipi_dsi_device *dsi) + static void st7701_dsi_remove(struct mipi_dsi_device *dsi) { struct st7701 *st7701 = mipi_dsi_get_drvdata(dsi); Commit list: commit 40cdb02cb9f965732eb543d47f15bef8d10f0f5f commit 6dc548745d5b5102e3c53dc5097296ac270b6c69 commit 859161b952a453b86362f168fadef72a8ba31a05 commit d72ac4bbf4cc8f6b50526ce400861f176659884f commit 1fd452c403ca2cd9dcbd8465f9f72be52e15ac1a commit 79abca2b399009eb8d12c652d0f0f7a9c7a06289 commit 96dc635d5538055cb6ccd7b6e9290dfcfc385f97 commit dc1dc76bd9a48c6aba3efae5eadb9a884043966e commit 356d2c8e76ebb1134a0685ce4b923d8201337475 commit 4c59b0805e9bf873fd3f5dca4fc53d8c220e39b4 commit e5bd7e3e4a68f0befe53f59954b25eec9a792d60 commit ba71593217b5b03c9e3385b268ff8613a71fc6ce commit 0a2486f85e0cfa6439116abb9078ab888a619746 commit 8aba4d30520ed656065eb36f0628109bdea385ee commit d093100b425df6fe400881f2e62c3f0be7bf18cf commit b92db7e4fe740daab858366faff1f992d53d3ff4 commit 0c05fcd3b45d6769c496fc6e2b88d18fc78ebe11 commit a6aa679a70e9d8fa4ad3f519c060db9bb186e21c commit 6de745238aa30529778a26622a430dfcb171b089 commit d395fb1999abb7eaa3fb5fd2107cae0f1e41e6d0 commit 20529e260ff2fb4a00b54a1e625ebebe5d1a6210 commit 347987a2cf0d146484d1c586951ef10028bb1674 commit 63af82cf5e36b6ba3f3ebcdd1edd9f91934bfa59 commit 64e257f187a5c76ec5766f50204462c0c483e418 commit 4d8f68548e982e2c9b9ca3b47aea49c47da93a3d commit ba8f16cd081902350e2d2a00afcc6b77b1815d50 commit 9f0527d22a52ff3470d8bf0dc79cf42c0677c23c commit 93de485cd822d429e91f197a820f02ee57d38fd5 commit 0421bb0baa84fc93bbb659fe682e19266730f9f1 commit 913b1e7ca77e0d04b74921e7328e3446f3a481be commit 848b3c0be2b944f633fe9beb28ad28f15c39f7a1 commit 9eb11f52a6285c0516046e11d45fa4be8714a1f7 commit 932da861956ac425ba4e65f7696458f96d833883 commit fc8d29e298cf47e07c2764ec1c340c1df8e50431 commit 75f664903d8672897333b86bb450335ec6486ad5 commit 81cb44274c654e49f55e6690079540b0bd177db0 commit 4de395f2c632c31c575f72d49d4f4389c99dab68 commit 668a8f17b5290d04ef7343636a5588a0692731a1 commit 917dd05418148f05d8860b8106da8dcd1d258aaf commit f134c9cd9ce829cc66d4d32c57b76de1aab54fe9 commit d71d8a4b8d10e4e2002d21940a768b389d594637 commit 00ec947c144b374ceb3fe1b4bd2e9ea7454dd630 commit d87fbea50b819b76f180bc8420c5f9efa0670deb commit b11af8a25b576cad006411fd904f88199ff9b5ff commit a961b197d72601b0363fd7614f9b98d5721f9c6c commit 35a3b82f1bdd60e454de34f984a3f09b38f64b61 commit abea75e9207e7744f524a5373e9c149226e17a5d commit ae9f1f2ca093906f06311ade42772eeb021af39f commit 55b3d6a63fb58e154f0a1ab3930cdd003a39ba9b commit 59dad4a0d1862dcd15405f3217a59b1fac01daf0 commit 1dab4561a341afdbaafe0ce6091106d0c63c79e0 commit bd8408e69a47f8e9f5d95c5d919413fafecc1e73 commit 53618649ca6ded3222b24e8d25a09be30a197577 commit 6fc20a8592f569395aadc9fd97336facdee84f0d commit fbc1fdaa8338ec4ebd862d918a0ce3e12033e8a3 commit 899e90cf20a9d0eaec8cbc8e1ca1d05278afb6d7 commit 86088f88a25c76baac304b6f887e5da2c30c4e07 commit 1a217205bd2643272e32ec38926250aa6c29a854 commit c19491894d4baf2155387e48aa326e1b52d7b986 commit ad444123a4a1d2944bd72fc877af9aabef01b889 commit 031a2fea0482965175ad20adea44bdfe6ed817aa commit 2b066860a4f855babd2a22f98364ff6546d85f88 commit 0b8613a21d9c52ccde18264b69de9f46faa362df commit 71eed8a9ba8609e9c97171525c28846b9bde9a4f commit 3475b50873e4a68302822d91ab5cb031c1a92d50 commit 9899834ae5f26649da09e0cae72d8d9eb8a07aab commit 6f481afe220d36ad7790526a2164d7fd3d5b0487 commit a6c225be3da7edec46f96781ae07a873b2fbaa17 commit 7fa8e07128ed660c97c4a8fe615967e654b84f32 commit 779c84fea3dbd658d3c4b72937732193cb01bf15 commit 1ba85119afb5e45c699bf074dcdc894bfbf1c614 commit 82f9cee25598a1cb06529df8e7e1f86f61e786e9 commit de2b4917843cd433d0f1c279123f75801dcd0c1e commit 83b7a8e7e88e7a201facc9c33833330485f5ec12 commit 42542c7904cf2e6fb795dc7ffd1903ab7d6e53fb commit 5dca122f8388695b1048a48a69d3cf9210036d9a commit fdff0a852ec8b8ddba6fc193f187d5d85717ab2e commit 64b88afbd92fbf434759d1896a7cf705e1c00e79 commit e473216b42aa1fd9fc6b94b608b42c210c655908 commit fdf0ff4d12cbcd76b53f27c96ce51ddca400884a commit 4656b3a26a9e9fe5f04bfd2ab55b066266ba7f4d commit e7fef092330321ff311e8c06338ce1b4b608ba05 commit b5c9ed70d1a94c59dad7b1ecfc928863c0fe6ac0 commit a9d2e8b5f1e5caa3cb038d7bb7bab530bcce5af1 commit 4c703f5d6f776eaa6a98611c9b5dfe800fbeb0c8 commit 7847628862a808ff3802df96f54e5eab3ff448b6 commit 90caf42527a40d09e0eed9fcbca08d757f4fd493 commit 8f48dbd6deaf5a14c924c1de08bf7e36526bf3e7 commit 1d43a5120ab49f22ba6c5901ad3994e254510303 commit 14e7157afb055248ed34901fcd6fbf54201cfea1 commit 4d9db10576ff51afa8cf7727fbad55ada299359b commit fa2a87e4c5cea2beba9deabcbaf54d1979fff419 commit 6d602e031103fb78dbe50dbf57a5f29737494c6f commit 2dbeef82d14fda3b15d40c94522bdf83f9c33ae8 commit 6e2dc7ac71411eaf6363d63c333519e1d353d6b0 commit 774ce1510e6ccb9c0752d4aa7a9ff3624b3db3f3 commit f6ff4570e567b687b851a2cf52c7e300c399d925 commit b68735e8ef58be6df7a6f511c60186e6051d9fb6 commit a4a4307003307220321f946892829a5364433809 commit 2be1959ecefd9f655e6262144a1b970bc2f34054 commit b25c377a5b26f107ea831af05919fc3782aabebc commit ac991b874b098ecde2c5eb81da48d52b6b22851b commit 2b8428a10fd3763819eabf1acef6b5b2c7875520 commit fc94224c2e0ae8d83ac511a3ef4962178505469d commit bbb6f93f51a19787f455768015e9a77a4d83c4c8 commit 97216fefed6d9782c7208cca33a5465212f533f3 commit 382fc1f681324bb38bedfe763107a60256c4ddc8 commit cce32e4e38c63f040ffe1966117d364ecf9a28b8 commit 254e5e8829a97bdbaf86b83ef704ac45a30c3867 commit 30c637151cfac8da3588f3773462e705a4ff2f59 commit 3565c7219c169ab6c6ef34ba9187c1b7bc6dbfa5 commit b320c7b7343885a346949abb56ea20528d611148 commit 57b2efce45ef5429e8d050190242849890b1fd96 commit ace98ffc8acbe7e8f886f2048436a0438663b153 commit ddcf980f4d724dbcf6a99be58bd07cd5cc68bb0e commit a8c18bec83a82a90d5e35a080bc465581459313e commit f5dfbfc0ae00c2c2c0518da9e1f9a8cca50ae544 commit 353819d85f87be46aeb9c1dd929d445a006fc6ec commit c4cf059d9c2c4849c65b481c6853bb93c8b33f3b commit 4bedceaed1ae1172cfe72d3ff752b3a1d32fe4d9 commit 4d87d36247e7fb9419b25331051c0746d09e57bb commit dfc83de118ff7930acc9a4c8dfdba7c153aa44d6 commit be0366f168033374a93e4c43fdaa1a90ab905184 commit 5d36acb7198b0e5eb88e6b701f9ad7b9448f8df9 commit d1051db85f6496ed9c825802bef3709f2e7d816f commit fa6a4cdeafa0ab674d0f72067304c5408c89964f commit f31bccd3989d504a0c90b4562908ea18162d7662 commit 2ddd1e6ccb139b9e7f1fed2883e34add832cbd77 commit c4f306e31632e997c01f3e5ff3298ffc3a127999 commit a49afeb4165361819b92b7991b97457bac4c674c commit 3a6acb7dd69f9d8960009ed1ceb77dc5e532391a commit 1765378dfb10d4feedfc71cd721c4140d927c488 commit 1d4f70a65fafb484064b9c7caa7318e9fd2ab737 commit bf8afc2090795b8640bf1842529627e69f673df4 commit 18c8485236a5e3f491b670c018ae391c9cb84dfa commit 696560d43b4b07b58cf8604a9b186b32159164d9 commit 4d09017aec4f2aa5f6109b32f9a037f35c17a9e0 commit 5d2f2e8b3a36328a3981996bb20c32d8a0e53b46 commit 22645976ae4c0e7eebc8cee7942692280457551e commit 2ac6cdd581f48c8f68747156fde5868486a44985 commit cf1e6a90315a3f5b8ecbb3cf6a4badf8978e9075 commit 44373151ab429cca53fae53d9eed374aef64afad commit 1ee181fe958a11d023fd992b8eabe6d4287661ee commit 9382ec27acb2f5a43dc3c3b77036f898a498ba60 commit 2d70b9a1482e09f8465452c4655ffe20c605d526 commit ed2ef21f1089ef9b3b943b4e365600e615ce827d commit 4f4dc37e374c957b2bbcd3b1f3dad73afeb647a5 commit 1baf9127c482a3a58aef81d92ae751798e2db202 commit 5cd062e31d352e33284d08a52ddb2b9ed1a5caa8 commit f639f74a789570fff9fb093a603bda550b53f3d9 commit 8aeeb3144fe27b2b8aa30db262de2f654f2edb9a commit 877507bb954e7d0a4f2d3ba9957127a83c03e447 commit bc8350409ca5147d432f869209ee13fa079625df commit 828369f2829e5415e61a2c25b2cfb0bad48d72b4 commit d4a3e50ffd9084e3eafb318e95ca91b5895a6e62 commit 9fb3473732908ff0f8d8f8763318c407489ae955 commit 15c5401dee76e03a1b4e30b7ba8fcec972e5bebd commit 69142c0a5f9a0afa6ec31d5f9a4ebf293d3b5029 commit a96d8f052205d92c2fa934f72dd39229c8b75d79 commit 52d4cfdc2460cb7f0528e27cdc9fb808f299d325 commit dd9d3cbe9efcdb2a0d88c80d0e492ccae54a5b63 commit 9cf26c8968b358bb14cc078f8153300a493613d4 commit 6c82c75230b87d986283189a58e8cb18ea0c519c commit 2775e2016179331f1b8dcc24bb63e898d64d49e3 commit 8eb403671e3886adcd939223442d49ff3ba52846 commit ae5a3d2c75a82c65564d32c42152ef7623ccf673 commit 7dd5c56531eb03696acdb17774721de5ef481c0b commit 5e8bf00ea915a0f290bf5ee544b91aad5eaab4bc commit 6bcfe8eaeef01fb389e951e7c648b934dfd62f15 commit 4a83c26a1d8702c516db77fc4423ae896ee904f1 commit 8c30eecc6769bee1e3acb485ad5f086a4d8a04b6 commit 37c7c23a6420f56a66d70e30ed54ae8f77349f90 commit fc30eea1542dd787c6aa46e970014e97e390c5b2 commit ffb6260be81f5f4c97b34430072bf50380b42478 commit 05436815fdb47539269387c10285c088a8ba33e7 commit 7fbee3eb9ab82c4b8c240617a1b3878c6981dd73 commit 01224faa36e86a2b9d423fe851c05feb288ae83d commit f9929f69de94212f98b3ad72a3e81c3bd3d333e0 commit 03d38605cee7762d020dc14cfdefa6cef77b5811 commit c25b69604fc4455228329c6c522a87974246e40f commit 802fd5750faca181cade177642e0e5233ff25f85 commit fd9e3169e42b7b9e3a5c58ca2bc95a15f9de1d6c commit de40c281fe0b6babf3d1a25e034525a23e125d0c commit ef8886f321c5dab8124b9153d25afa2a71d05323 commit 730c2bf4ad395acf0aa0820535fdb8ea6abe5df1 commit 3d037d99e61a1e7a3ae3d214146d88db349dd19f commit dba4d442be8c4d41d3e1ee4f72a2cd8fa524b8cb commit 8676145eb2f53a9940ff70910caf0125bd8a4bc2 commit 71bf55872cbe035820a87b2aa5fc1dc60678abfa commit edbe262acf92c986ad9a1f594ae3b4f3d3373133 commit ce582859ca7b33e5c0d9432da9f7b54ced802100 commit e13140a06283141318319aaae7dfa348b06bdd6c commit ab298c29d414a5a94ed3039b0e97bc325bf45272 commit c4863ce0f4aa17d88f4bf5fbd92ae9400f6e6d28 commit cb7fffbd26dd6eadfe6591c0e14fb43e1ba2f70e commit cfe637c4d6fcaffa655405e682f99a3d88e5fad0 commit ce73f456744ca763ab6a9753104caf843d30fd8b commit 7bef64490f9bb04731d3cf46bc8f7f46e55b2e0e commit b3aca563d69bcbb49343196b4265a8cb7db91bfa commit f241b064426943a1591c9e9121a175d5ed1edb42 commit 504a51d70f86e3b989ca8834691bbac4033b6f48 commit 9e6a82b9fcecb11b84d010108874f923c1e648f1 commit 1ed88a816d0037ea6fec1be18dfa9db8ee7196a7 commit acd45c56790a3b558b0b0081678a20b0a0d89b0f commit 0f7dc324b2e9e55db9323302f944fd952dbed967 commit e25d5954264d1871ab2792c7ca2298b811462500 commit 7350b2a3fbc6956b2b2234f6d27d030c70b451bb commit 6bba2b30d29cbba78ba0f935210108e74dbe7ab3 commit 1bba7323c79b169d855ecb4a1eba410f18a38674 commit bcfa6be2ee21b8ff85fa8f51493c8e585e3ab265 commit 5fa9e16191204b6ead0c31e8f3b6ef92ddd8183e commit ea6490b02240bd7939a3a13bc8d3f25046c01585 commit 8759464d7b6309e23df95f12064a120422d6f780 commit 82068edeb5090b6f999457483623b39b6546ef74 commit a61bb3422e8d6ec002dbe288356470540eb5662c commit 3bd86801c84f66b4abedde4078e5237937b7576b commit 36e599e179db51d61d2b30ea63bead7abfae8506 commit e99ba96247764e2963bcabf2fe2d91b4455c6bc7 commit a9b4c16d886cf6911d69fe3c68f5c7b2112f0141 commit eb09882d64807c24228ed1d005dbbae70860ca3f commit ed5c2f5fd10dda07263f79f338a512c0f49f76f5 commit 8ba9249396bef37cb68be9e8dee7847f1737db9d commit 672c0218e3e22ccaeb2911da8d3b784d3b6cc1d8 commit dac6b80818ac2353631c5a33d140d8d5508e2957 commit 5bd8d53f6fa53eab5433698d1362dae2aa53c1cc commit bfaced6ee77484d8b9c6baf86a8e9406f80108c5 commit 72fadb13674f807f10a168fb7d020dde58ce6b0b commit 194eb174cbe4fe2b3376ac30acca2dc8c8beca00 commit 60c9353139a0770e6057b3ed2e115deb95964e49 commit fdf17f1084c1d3fa0a2fb38fa0625b13b7bb0fff commit c620e79bb695b866b2cefa0135f7eddd0d5bc9d7 commit ea76895ffab1a610fa162ca56f99048cc161c293 commit bf0dec4604979e09be60b7dc41066e3d07d29bf9 commit db910f10d5f4b7e6c9997e370f586eca54c22430 commit cdeec9a11c3c95f33a3e2be36ef3fabd60b8ebf2 commit 78e16ac1e764def96f4c89b433d379acd68881c7 commit 43d61f6d8f4d2da7df116eac4f83106ab1a29090 commit 34f667634a0dcee26d9873ab1c819bdd6cdf485a commit 8350bb59e63d0909b0d65af2d9710026e0f902ce commit a4d3230353e493d98263c5d7f03ee6403ed82d71 commit 0a8c91d7b694d122afe513e95908e8497cddc195 commit 1d32af4facd075542b26550e679ab53b5b8b5c5f commit 01b537eeb049b98d7efc8f9c93c2608ef26ec338 commit 52a3859fd0b85e8dce32b6aac4f8fd18a25626c5 commit b34e44bc6156717543b784b50f4d2fd23f299700 commit 6ae0632d17759852c07e2d1e0a31c728eb6ba246 commit 30f2d2e49e826c2dda35153d2e108d06f6d7d9dc commit 0ad7347a64ac4baec1786810709eebedc5f823d5 commit 1ed5a845c7c87aa79cef2f96e4165c8fad38837f commit a021e2aa4dc203f58f5dabf55aefe5b8891a97e6 commit 7e55536c9c488febfeedacebae0831c070e72c36 commit 6dc85721df748385cfb011326ead52c01840b461 commit 78f48aa6f50b662bd74607f7415d68171339b2eb commit 5ce27d6210018e972197ff7e5da6309f919fd61b commit 56c7f0e2026328e56106b54cb0e2fe3a7e70ce4f commit 368d179adbac212a5adf5fa492397a593d52547a commit c5de70f6e14ce02c3e604972f8fd46ffcdc184d9 commit 5ece208ab05e4042c80ed1e6fe6d7ce236eee89b commit 8ad0152afb1bb3878bba282308f037d73a87ace5 commit b092e4a9d3e3335fdc5aa23a9444eeebfa81da34 commit b0f2eb942b8a449432267571d045613e35ada2de commit f922fbb0f2ad1fd3e3186f39c46673419e6d9281 commit 47091e4ed9af648d6cfa3a5f0809ece371294ecb commit f4a6c7a454a6e71c5ccf25af82694213a9784013 commit ab55165d73a444606af1530cd0d6448b04370f68 commit 75217c2fcc88e77bea40ef1153d84ff31fa99112 commit 61faec5fa66cbd1afcd5074f168f09529f8119bf commit 6a079903847cce1dd06345127d2a32f26d2cd9c6 commit f386832509b85e567acc849cdef22843ed33a525 commit 4cf05a4d7125854800a0e88eb3e1dbd74368e9af commit 8869fa666a9e6782c3c896c1fa57d65adca23249 commit 0f60d28828dd94779c6527440289e1c36a05115a commit 54c204c522fd2a887b52c7672b9238903ba59a8b commit 4234ea30051200fc6016de10e4d58369e60b38f1 commit 20052deeb558e34e04655076a3b3403c3d289912 commit 48bc9d5245a43486559935da5439700ce4fe4a3e commit 544432703b2fe73a07f387c0b883da03ffa5671e commit 75ba3121acd58b71ee1d2f6e30ab44748d4397de commit ded910f368a52b64a3c0eb12da085058b55f61a1 commit 92b2b55e68c8cb88588073434ff3e3240e98504c commit 73b984d8722e3ee077a8591b27d8c4d1a2d72020 commit 6d3c900c12d72667341bcff338c252e22728b942 commit ee50b00244086453dfb7076e4b80214948cd0507 commit 95a72fb73c5900f1b8f00b2559179760ddb729ac commit d8adafc7feb86b61fc483bb58b30028e6fb919d7 commit 9dfa4860efb8cf20c12b9b65ec66cafa6e93f3a6 commit 4bb5fed16991e6c1be6b8b4c1305dcf08ac58ecd commit 947f63f17e1d91cee19f1bc071e825b28ce4da98 commit a0f7e7f759cf299ee6f6d8723c596af9a1a86b10 commit ddeaf487464af315ef7af02b37830a14fb5452e5 commit 441b12bcae736c20a6b8bf6978f90426ab1719a1 commit f9bc6142cd8deb953f0d9fa6bc6e1833402739e4 commit d6c770d2050b26fc90c80c13df1d6ae4682b2e3f commit 9407feacd2e19b66bed0762c454b1654807a626c commit 7ac32451193d20fbcddfb5b2623838ae98cb3c17 commit c10c55cf49fe9060720d67575c301dd452e0fab3 commit 008973fcbce429a2b0929108b6f9495d885bb1a3 commit 361c6e35d3831750af3c308e5ac056ab2971f199 commit 869e3bb7acb59d88c1226892136661810e8223a4 commit 83ebec7e0b4c2847d9cff2bcf1324cfc5287dfcb commit 0f9fa5f58c78426a93983a2cc0127fd98b020403 commit 8c5e9bbb3662b09fb9b5353dc48d2f871f13127f commit dbaadb3cebaad49c37e3fec937e73e6e41054404 commit 48b6b3726fb7c189410959d2b8915c209fbf9e7c commit df78f7f660cdd5974b68649a95dbb34da4d4dfa7 commit 946c701407c33867573767db7a23e2b6696b5d9b commit 0bee2ae29eb4bdeaf5fb80b4ef48877bc448485a commit 0b4e477e08a14ef852d5a633cee10e4187730005 commit a5c2c0d164e96d24f73faffcd3b7bbb607e701a9 commit ffac9721939dca3f0ac7bfa90f3dc484b19c2706 commit 083351e963865a7eab55158042b81b8f8c0316b6 commit 11d2738940ebeb3fd3abc78d44684d5edb400a6e commit 21167510605470d53c94e7162ae886c8fb67d93d commit a76eb4297f90301fa9e4c888fb06749ef1be1c86 commit 2482fceed27b6951287e92e9f733533a657c2923 commit 6366fc70deb9aaf1db4a46916af14fa3c5a115ab commit 01ad1d9c2888d51f2fb5b5ac88af8bd47d76937e commit 4d07b0bc403403438d9cf88450506240c5faf92f commit f0c70d41e4e8341651db7b75374bbff0b14dd310 commit c7d3c8447b262d177e0e83154841d64cde521e70 commit 2c93e7b7f545d2cca0e9e220ad7e6e1ac793ed39 commit 43ba44a176a420137d5acd93a61fbeec4ce70191 commit e6f1964818cdf5ce64a05898e53b2d081c682819 commit 9d0bad177af9fd31ea14e580a34e34d02edd26a0 commit 268c67e5bd8611f0835839957e77f92bc589b7d0 commit 39a445bb2787aac5ed929587a2e13ea5dc4ed0a6 commit f81f30b305d2c73c23d60b12b104d3f191c5687d commit 488e29fedc1f2b771b37896da853bc4b493e4b3a commit 00c6cbfd4e8a3279876babbac2f4a3f811d93b1f commit 7578fc4d59e2e9ac5dd762019db77481511ec436 commit e26700fcf961c99dd5d0a416c4814cdd69e6695d commit 3a9313d80e276cef87355305720a5e37e7ad4b46 commit 95ccf312a1e4f5a1150dd1a0a2d81c1043e33fb6 commit 11c7faa61d136cef92506e4e77d0e6c6e01428bc commit c247cd03898c4c43c3bce6d4014730403bc13032 commit b1d36e73cc1c68d28f63cbd14767d0d0861147e0 commit da11ef832972e311475fcba802398e720ed36c54 commit 1eb67781117ca2095f0dbede79f22f6b2ffa3189 commit d9c04a1b7a15b5e74b2977461d9511e497f05d8f commit 08e9505fa8f9aa00072a47b6f234d89b6b27a89c commit 345c0bc0a3cdd3273de5338b7313afe733692296 commit 7c55b598b32936e506a699698fbe37c891ad1873 commit 0acc5b06b5b450b351aa006c70264baf3062e988 commit 7930f58a7e62e52e96636dafc2c4beb3b76b321e commit d61e4ba33e254ef8df33c355ba1b2865e3885693 commit f577c7c76bf9f0e0a6dd3daf5b9a3d3f2b3880cc commit 9f92c20279ee0f5256499d9fe55b6d6c4c414276 commit 95bbbb88ed49f6d4f46c9a23be0ba94db2fa65e9 commit f7fbcf4637fe8f54acb18d88488ae901b3d7a4dc commit 99c957fedfc6678ded0b53afdcb832cd8446cec8 commit 28c042707bf23436d4fa3ecc1eab1a62dd1f6d7d commit e6cf22ef5fae493a99e162c3f2e7233448d2b970 commit b68ea8af4ae005df5ca4f547f22b3824d0fcb3a4 commit 594b237b9a07e28d524b35a59dbff5bdc8de6b78 commit 74f4e84dc42bc80478ed15c221280e45e4fdfc5f commit c8b1d0fef1b652c65dc09a0fae6ef0504bb2f349 commit 42900348bfb41cbfced62060c9cf4b735119394c commit 8243df477845cdcf558226bbd24321ee85f82c73 commit 16f0013157bf8c95d10b9360491e3c920f85641e commit 2724efa389c0dc4d686935b980832cbb87956968 commit d3ef9d57f24eba16cbce8f304c9190528e842227 commit 720102391060792bcb5697af640f3a4f09acf360 commit a79f56d191c4f621eee85979d6e77435fb8383b5 commit 638bc30f8579bf4e0fda42a0c271149c6ab9c893 commit 2387e21243ba8a2734322610daaf1eeaf1a146b4 commit 61ebd2fe6f793306ab6c05db8872931026dc1b8d commit 6160216fd2c97107e8a9ab39863b056d677fcd85 commit d200a64305f7072db918e68b8caef0b33e55ef05 commit b2243cef56befeaa45a30e783265caf0c8e01ba1 commit a9c5e9c82039cf9f12bcb427160a2163df299b1f commit 6509dd1111928a351204af1fc8e6aa61e0c59002 commit da30390b93c377545fdf5ecec34aee018f90485b commit 068a0f5c8260dcc4ccbaefd2dbf21ea84162ac17 commit b078c16bde6d7eac1eac4be0dff07e3b77fe4cdf commit 612dc414458ff439d90a6c491fa5d064a6412713 commit 61c86578229d2f0a71296663027bd774002f1506 commit dc35583ba9eccf2052c1eb26a0893399a79a5916 commit a2b4cefafa26e6e4dc550366b2caa87a916c179a commit c41aa0204d1c05edadc42e50fdba62784f5841bd commit 3eb4ad9325f1f959dbdf443176818ae3aa934aac commit 3d46edeec211bcaf006bdd40aa73d2c4d3a4753d commit f02c7d5a8fa3ecf7a20f25815bb30a967fa18885 commit 6127b3bcd33299cdebb79ffcc9c9ca135eaf763e commit 2c2d7a67defa198a8b8148dbaddc9e5554efebc8 commit b183db8f4783ca2efc9b47734f15aad9477a108a commit eb7de496451bd969e203f02f66585131228ba4ae commit 4d054ca9ad01004901f3ba988d77f7d298819c12 commit 378e0f9f0b3e03a84db5ed5d3da3850871e9209e commit 6215a7c8f55243779a44bc257af0e1b1bb928e76 commit 25bcc828d237cda65d34c736d70e4467fffb80b9 commit e7c2af13f811d0c23340154b7b2795876c71e4be commit a7c7d23649f1fc3a73507d2aab3a5010a7b6745d commit 291f269a49916a8494526edca92afed69270241f commit 3b10f8517648d6bbfbe4c3019aa2759c463e546a commit 986531bd0e72e74190c217523ff212c9bafa409b commit ae611d171ec02f067b36a1658f29a2f3a9eb2a91 commit 5a04eb5be8e4da3b3574fbd56b6c43fa1f749cdf commit 103472c13f0afedab818a2c6469d78c2fb29ad8c commit 06a50913d96ed0f2e9ecd1ee3f224af72b03af6b commit 34dc3cc5017f08df21a8afc9ddec2f622a5f04ed commit 203eb5a98edbe40e64fbc794011ff7261eb55d8b commit 12dc50823845e3a90d137ee09598e1984c6ec3b2 commit 6c77055aa674b6726f8ee57d1c20e950323dbadc commit 4be1c12c880e03e6d174e7e7f9e0dc36bdaf9597 commit 36d225f365e737019a5c774682fba99ba7ae851a commit b3d81dafdc48405ed061f3ad0bb75d7ef7d09936 commit a30a6fe9e56c401307d534b2c224002f9b2d33ff commit 5a4dd6f0e846541e57a58f97fce86da1f3ab3a88 commit 304ebaeb3fed122e99d21653eb8ee679872b3031 commit c3704f1938e76654ebf5c9de220d08cab5d437de commit 44eba1b85119a8f2d44a47bb3e8c5c608a05eba4 commit df22d67e5f3d91ce6f0b0f64ccc14d016c89d956 commit 95086cb969b2cb8abe4984457f219ec70d24052e commit f54e515c91806288126f64b37da0c78baa2d8c1f commit 917bda9ab155032a02be1a57ebd4d949ae9e1528 commit f8e1fa0fc8bd13122324da7d1e80d66641220680 commit d688f6b5525d5bc1b88c198959274d53a1a24204 commit da09daf881082266e4075657fac53c7966de8e4d commit 2aefa9a38f236481f41b117e21ffdf38f40830f6 commit 1d5d1947778cbbc9b469e57b9e1a56871250afa9 commit 45a92f45f4578ff89da7dc5ef50bab4ef870f3b7 commit 6b11af6d1c8f5d4135332bb932baaa06e511173d commit 62f6b0dcdf42ecbdf25205c77c9297d3977ed690 commit 572200db77ecbd3a178c68d469790a11cf07a20e commit a3c9b4c7a75a66b65b62900e2e9d140e0470cd85 commit 9af611f29034dd6c9329de06dc98232a5b89b939 commit 6ebdaf20fc4dd98e7573dc2a926c81afc8ac7870 commit cfa1e7f8a75927e55cce1300c8fbda2e1d1e0abe commit 2581c5d85e31c96dee352a751dbce17c1b71b417 commit 29bec1c43d7de6af60a34e08205db3b7c6048cef commit d84f5d6562b2f068ec7011f50e702e8a60ec7932 commit 55453c0914d9b81e75c5c83adb2dd9382da2c79d commit e990bd60716d64d18e8c5785865e15783a90cee8 commit 36ad2ec9802f9613f5d2a4fce10c9452f0a28492 commit 280f1884892f3825d2060df43dd1d452c585cd0e commit 4e65878de0db0a2f6778b78e10fd3b71eda4e4a5 commit 6ccdf067206ee82a596fb89a28ace18b4e8b239d commit 36527db318080d36138c802ca9e03a09e5a5fef2 commit b09c1fff5a9350a65b16af44e74c9f9335d9ef09 commit 7857825ba4671d053eb3724c7098bc759bf01a75 commit c17a34e0526fafc0e1e7f707c634d7e49dd08197 commit 8606cb1e68d17e24de660110d7042eb82df7a70d commit 847939e3eda39f98de6ae95a5c5e0e1f437a274c commit f6f76233bf506d03f3567fa229c7ad2ce6a768d6 commit a3cdb5d2c89c8005f50cd4c80c1dc75690e5fc96 commit b1bdb5ebb06ead49456ae9f23a12c7028076f9cb commit 4b91ac9e389d177e8f1af5d4499c6025e866c850 commit 4bfd688e6508ac6f1cdf81c1ea91e3091fa93853 commit 9f6f6be163dfc4b912ff1b20be1841cce306b621 commit 0991f44c90f64c4e4d97982d5702ab18449c99d4 commit 94adb9933609bb3846261a688b28c2ba428f8805 commit 64e32c91fbb88a2f3f4ab697f538fd8f3f62d99d commit f9a48ed7067734624c13077f5de16365d7bddac2 commit 606db591bf32a46a7dc3d107e13ba7ed2cf9079c commit 093fc6110c7240def7717aa466192c2227d84649 commit ab23c5b9c74d682d81b0903247817b2bb20528bb commit 6420f4ca68fb9dc3f7f5c1c27eb9a60f4b751bf8 commit e0b859cf7c099dbb6bd4b769268baf5b0a51dcfa commit 93844fe7651c1f12206ac8ed8dc7d2eca72d90b9 commit 67ec7195747888e2ef307010541fd07304d57ed6 commit 9d84c7ef8a872253a9e8a9865ad5efaa0f8c05d5 commit 74d834044e2849aea1a75c4b3cdaf38917ed3c5e commit f4f5e50761fd7a8b8ad8a4d6f2ac0ffe76ccd396 commit 6ec128c3fffcac8b05ed187e11386afdff4bacdb commit 6b46251c5067990651bdbfc3edf07c2e16850a0c commit 0f05a2e52862107aff6f4ffe8e8926ada4432c9f commit fc968efdf0fc71bbd0e031b9ec071062fe469e7b commit 7ab47ba22ed35e030cf67ac8756767228c591d17 commit 10f8927d74473a56862edd94390cbe534cb539b9 commit a60d2191371b4157c56eb502bd3f8d1038a5e35c commit 92f050436637099db7cfa6e9fe28018d17d9ade6 commit 8e039cd176c61a9770e1956038c93738efc800f7 commit d9ec10c30e65df832180159217939918383e6b5f commit 773562364ad9184a31e3192b268395560dbf2dca commit f66f48471ba2f721695694c400cfcda3136ee736 commit 5bb71735668263403d560b48e8fd1dc1215bdeb6 commit de2b2ae34ddb5cd4a9c840f557b175b4c3c64f65 commit bbc9f072117efd5a81d81ca787855da63e7e7252 commit 6234bf13913fb7f62bb4ce2ced42fb81c524e851 commit 33100f10e2fb847954e80e356df3ef9e5941819f commit b3235e8635e1dd7ac1a27a73330e9880dfe05154 commit 5b04aab6d49578eacd6d341e281c70a769f96126 commit 1ff673333d46d2c1b053ebd0c1c7c7c79e36943e commit 7c1dceaffd99247bf443606730515b54d6285969 commit 13cc5123e9530c5895799b4185fb7a1a2e1b7f88 commit d9927abb4594ba940b3ed1dd86fa0447faf13a7b commit 73c7a8a871dc9aa6b7876c1a30bdbe0f899eb4f6 commit d5f476edc5b58916d05a7a5b87fa8ecc9d847f71 commit a40a92af46113e200b9110c4040a465771d28b35 commit 9436ac31c73526b1e070c050ee83c3870125bf82 commit fe09f343d58333f5e761bbdf4871092c6c867ffa commit 94ac32338e4f5372ff0bf956f069581096717885 commit c6329e255d06fa908321ddd5077b804b9b3275fd commit 701a4ad97db690395237218f30875436f2a4b461 commit a3813175c4b50a0cdf3e72fba3d560f43b4c9ecc commit 5ddb5fe9e5a5c7f518a29df22c2f5af62cc74826 commit f926464e59b7029b02d731a9f8a31419ff973ed3 commit 2b5692345fc18b959ac7bc11550eee3a6fed04f1 commit a4d002d7d0747b76c5cb8934c25aa745d91926c2 commit e7c69a27cb94a86c3ab467fd297918494605859e commit 91a95887891f1ab791171f32de99e9d9ed34c888 commit eb11eabc5f26f876c514bb294dfdb0484bad28a6 commit f0acaf9d6912240cf1a27f0f75d04cf149086da9 commit 7249dfcb6fc0950eb1d7e0bfb8b642cf40f089e7 commit d51309b4e9aa79653b8343101def9ba99ba2cb57 commit 2fee35fc07462b900dc7730a92857d1f1350c621 commit 90b87cf2430490d9aa0ba0c2a14b4db8da0c4942 commit a434689c0adbf8986024e82767fd26b0e142dba6 commit 80b3842f21f8af1bac5750105f557b29af854291 commit e3e8148f43fb6d4347211ea2160e7de9b8ddde81 commit 20478b88071349ad3d7340dd1e3e714fb1e9b98a commit 5da6d6c79297832277b34b38628991cec07bc664 commit b7d1559038b6c949b5a4eec77db77f3a78edddc9 commit b202ab6173af66a78c95a6acaca26f74d0c8a464 commit 0c82118b0aaa5113e39d875c296a416fa8ac6fc1 commit deb141510f6e55c6d5fe3b5b77fe3df8e57dce61 commit 6493d4a96fc3d16ae946c886f51b74ddfc58f204 commit a71e7d77fb03f61211d035afaf033a01dc443195 commit fe28c7c120d6c620283eeb6537c38b9902f850d5 commit 51b072de8e0f2d5bb562474efd81f1cef77e496e commit 3047d7060e4db3b4d8f6f915db50a089662caf65 commit 4567084c305154b5abd427f568132432c41f13ef commit 6d737d9bff5fe98e01bedb39ab9f5be3a39b5ddf commit 3721d4fb763ed9f580d942f95b366c252c01633c commit 0514b50cf79b22decce0dd2cfccb5671322e9bf7 commit 99f37216b36622343b8f1eb625921a9888054a9b commit b801a98f81bf72884de2e6c8409fd3fea5cc3f67 commit 8482af4bd28b74853bfbba9feab1a28ce868c747 commit 6f10c4d62377c8a0b013ba98230abdae71cd7723 commit 03e067bc731c7cf8fba403ecfe4e2a85b49a11c0 commit 06bfa86eee805e49875a64a23f083aeeb5e39daa commit a06289f3f72431f3777af95ea1226b5b0abdc426 commit a5810f551d0a8c83b4817b53a446bd115e7182ce commit ff4e0cafe845110c9b7fe26eb8a6b49d60a1288c commit 9aa320341e9a86c684ccf8c2e75ff07486d9bf46 commit 0538fa09bb1073b19b197509c51c55496091d125 commit 0af02a0e52030ca0b5acc4da6d3ee3303077277c commit 169a32b76842c10fbe532cde6cc25e89bbf54341 commit 018a7bdbb090b9155a6509a0d1a684db4afaa5b1 commit 68fb37bc2c8ad05be55c1aedccd6cf0778b1442c commit 41ee1f18ef52390518ed14b8be98640955d8f767 commit 09872b1c24220985c17e2d46737e1bb300f49ba0 commit 119dc6c50eb9974e9dc0e6a17d8207592309c940 commit ca4ba3394e2aebcee123055a1275980940f21598 commit afb50906cf029a40b713c60d8800d3ee25ebe03d commit d9d86d085fbc104ea73a7f6da0b1a6c4086b709a commit dc5f3829a752bb579f709c604fa2f362959ca2b4 commit f8bd73213a13b695594fac76cae67105bcfc7706 commit 425fede6e849df5676a41a520e0064fadc98a6b9 commit 5818eae501c57e003de9e4f52a6001827e123a88 commit 40ad3e545b3da75f107450d32bcad8346fce5dcc commit 08c8442c4a032194d6956a266810bf109cdfc138 commit bbb860d46fcbde5881c93ed549445a85f2434a64 commit 828418259254863e0af5805bd712284e2bd88e3b commit 72be7316587835e0c76dad472569453e902b562e commit c322b422ab0f7b3b15c0cdd3f2c534094eaefcef commit 60e9c7ee3fec7e4f40b1bb8e4e58be03a12c9eb1 commit aa44beb5f0155d13a24edc0ae94fc8ad1196132b commit 63127922e15565861a0868561c1479c2e490b8e2 commit 922710a82d267b785fbc892081c01e68148afe3b commit 32d1ffcd3979b75b6d7271a3028f4df2ef181a88 commit ff58105a47ede2e9f3fe6f45e9b1185dcfde7762 commit 7f908d332dc48a12436725ae326d6143a1a02c1c commit e06a46087d8bbde7ca31361789edfe026b08fdce commit 4e78d6023c15c6acce8fbe42e13027c460395522 commit d3a7051841f0a4bcb1ee26a1b721c6150cc4c2b1 commit 3fc307dcec8b9aeecae8c1bf2c97f770805daf4e commit e43d5864f36ab32f831b1af7bc2171031e58e2ac commit c312b0df3b13e4c533743bb2c37fd1bc237368e5 commit ce9564cfc9aea65e68eb343c599317633bc2321a commit 25899c590cb5ba9b9f284c6ca8e7e9086793d641 commit 3c8b6a399e0eaa6ab839bba2ce9a2bc57e6708d6 commit c053383813fd17296db99cea78e058ed4d53019c commit c0f50c5de93b8afb2281009a33c124e82973e457 commit 5e0e33f92ea5d891ea37fbc5119031024c154805 commit fe7aebb40d42bf8e830019d6f57c47cf7d85aa61 commit 483e3d87a37e804588ac8224aadd20a84593cafd commit f89aa0b6db18dea3c3c8ef266cc6c9fd8dff2d72 commit f9feb882744f8dd3d7b52c3548bb6471ef3adea6 commit c2a6502f36248e9e17806d1342e4617d895960b0 commit 981f09295687f856d5345e19c7084aca481c1395 commit 0aedc880025ffed5be6736bca61ace31f591b92d commit 8fe444eb326869823f3788a4b4da5dca03339d10 commit 5a1ae03fe5b7905b2913ada57629a2ef255629f5 commit 46d4eedab5a1fbadfd5dfc915a92cd13fb3bf325 commit f04b1d91aeec5f981b3a8f10b7321fed544d68d6 commit d48596f3ef2c0aa2ce7a106dd5ed99045d4ae377 commit ed1b4369fc550416b54de7ed78ee39ba8b64f88e commit 5fe9eea5eda09a5b02398671def156e16162eeb4 commit 490d95c70e9d2debd2be0f7bda524c28fc009da1 commit 3064d01976cc88f9ab0625bb4f729ba5e5986584 commit 5a856cc22841d6f3202aa91fa5d4ad07e3c0a9db commit ac7af83ae08b2789a828add74c01ed2e7b78e21f commit 4182a311fbd83f17b276d94c44539aa97d381959 commit 22055eddd4fb33ef475f2daf700fbc7dd0f42389 commit f8cc091e05305231c8f747ca253a90ff0cea60b9 commit f1ee74afc1e303e69f4485ae677686e95a8bcbe5 commit 2a37630d0ddb8a0612b700635cf4827aeafe4142 commit 1645e7b9667f14a37f9ac8c49568b8f979227d20 commit 254fe9c106ed69245fbe0beac582054c98a91482 commit 2eef1ef6e22b241f26d7bf0f1554a9863277e526 commit bbdf7b2a0b0e69e4e18b5722341dfa6266d19390 commit 8ba1648567e289c90fa4f65b4204d0f160e22ac3 commit bc0d7fdefec62e0cb83c1bcd3c7bd033f5e826e0 commit 3675d8a1726337bd1e839a185e0a7ce0bc459b6b commit 396369d6754993e40f1c84b2e22e40e92dfa4c49 commit 797e2c3f2762c356aadcdb53dd6bb8b8d966f7b5 commit c6266862de1665b8c8006f58612db2dea66a29f6 commit 7ae5ab441402b8165de4658ba9398d8378f7dd1e commit e1a84ba850128b3984973786829e610ae4ee0e2e commit 873fef8833ea794526b7f4179088e565078fe0e8 commit 8284bae723f025cb6a8431566757a3854a3c53eb commit 8e3d857c70dd317cb71301d9b49f0506ce409a1e commit 90f9617ab86063a5d7da628137f0b19826648cfd commit c1bdf4aabc093f7741f6fc6f1a6e942b946283b2 commit 230bb131a6143b19a78031c64fb8f3b9320dc122 commit 5aea37bf4112896437176704049db2559efcb8a9 commit 5fd5cc73e449286bc54209a4cdc7db888fb022e1 commit cc6b2ba27506781acc0890ac1ce3bb2be154a21a commit 831a277ef0010e6599af6b300140ca61a97afff9 commit 7fe194b2d1bdb9d17eabf1c5e485518a82c7aeab commit 78c67d5fc371c82f890f5de7a20d7451735bde41 commit f8ad757e40c9c776a13eaa56d73e8e62381517b6 commit 68eb42b3f3b30df1a335b3139b21c32187c0efaa commit 07d50b8222d0d6fcbb281393048e36e797334ac6 commit e6643298aac0d9d77696513722c85d7808e4c84a commit e740ceb53e4579a7a4063712cebecac3c343b189 commit 4da7aad41c8f6fcccb37e2c95a07c84835effd7d commit 580c00e64f121ad2d99e6f43796a49ea2cb4439d commit 665ae9c9ca79bdfc83def0981e015e181ea463b7 commit 65332a5b9fbd5c72c0db009b17ef4304d4c242dd commit 340b515c1b172e43ea47d5f823f876307854b46a commit c61ede87b08c56cead5814ef92f0d5eda9759f0c commit 9988db59b1d000c6ac7e91144f550603626593a4 commit e06f1c6022673245a68b22f72ba40250aaa7255e commit e72df53dcb01ec58e0410da353551adf94c8d0f1 commit fac53471d0ea9693d314aa2df08d62b2e7e3a0f8 commit ba6d29e885e856f2d9222861e61c370e25f0d2fe commit 6d9b523dac1491a87bb3f15375e153de34a481d2 commit 17048d89913c1713f0549aa47d63f2a4940545e8 commit fb0a0625f8516345f888d67bcbb96ade19a8f20f commit 096e33f8ce4f4c82035edb532e8cb0883831e14b commit 780244a2fe8a82424c85f4cb15e45d0bbeec8f26 commit 622113b9f11fdaeff2cc17f684fb7e4968fd8a4e commit 3bb6a44251b4d066d73faf43dc17bad05963ae16 commit 04f7eb3d4582a0a4da67c86e55fda7de2df86d91 commit b000abd3b3d2f06e9cc60c19dd4c893cb3531d76 commit e95132ef5d458b3e9d75acfbf4770e8b34de5315 commit 665a7b04092c5671f3a6c34302aa1538948b4666 commit 0ff0e219d9b8db047d3e800553f238136ed53ed7 commit 27d06077d6e064ab5c02988d14bca4748045d002 commit 5a72df3a3290137f6fdf34f23ac617ca35262c76 commit daf195faa5a13972493d3a434e4d2e86ece722a5 commit f7ba838cf75b348a3a8b0d11d347c964fdf870f3 commit 3917c9d3b2171dc838b486f7be6869525c6eee02 commit 74d6f31fa427b87616bc65987a8aff460da1e670 commit e6f29923c0489b6fec1ac000f2c045df43ec081c commit c46af5621adc766cf1a7cac300d577a39849862f commit f2c9df101095bfef7682caec8a5fa7d4f3b29182 commit 758d7b3483b6eae4e0d52dc18ed6b4ed8fc1330e commit 5d832b6694e094b176627ed9918a1b21c56fb742 commit e2a5c05de6753781d69245da871f58fcae6d0bb0 commit 55544b2811a6c2cac9a823b1bfda53344322dda2 commit 42a0d256496f4526046b9779ea6e49018b58f779 commit 3fecf93c86087d1e1a9db28d3423db276639e776 commit 6da75526fc9edf940c12a785cc2fdeaf22101cad commit 0173ce114dc4df73e0ee3e1eafea156b7b26e719 commit 6d6e732835db92e66c28dbcf258a7e3d3c71420d commit 1ceef996c99f1e8a44df8714fcf12822353ac488 commit 0a80005d3c5fea0a21fa6553724c171495ece9b5 commit ed9605a66b62f27513aba1d95f7d470c4abda29f commit 53593515ec1a4a5afaaa88fd4522bc4c2d7f5d9b commit 2a07a5ddb135e4bd15bf6468b7d2daa4deeaf07d commit aeb76f97fcf5bf6c094c62ac5cc22a1949751236 commit b13fa27a4b72caebe99bd483092479c3767453be commit 046f4f0af7fd1fad06793d863d288c6b2cd84e99 commit c5c354a3a4728045e1342166394c615d75d45377 commit 2c2705bd09730dba6017b26897a2bcd3c5d21557 commit fa47573b04a35078953be5f81a78f22c96358817 commit aaa65520280e96dc47fa5065b74bddff30279abe commit fb34d8a04e5876552cd0d4f9e14400ee13f116fb commit 89b03aeaef16f8ab48c10c399f97c836bdbae838 commit d25654b3fad9906ca80912701fd4bd6e2419f54d commit 216b9bbaeaea96b7f05c220f61855d174be972d8 commit 385d1bba890f9b94322ca7fdfa778311f1ea0813 commit 4a85b0b51e211fba03c081e1e47f8871e4b3088f commit f2912237eb922bf2d4ebf13f3f5f1b25070f1e52 commit 6f3562b3bca078b40aa198db8fdc68439b7b0399 commit 47519d8224babc9dee489ea96dfeac726fe544cc commit 213cb76ddc8b875e772f9f4d173feefa122716af commit e3d8d54cd6c5b29f3437f1f00b393267b84d650e commit 5c4d2536cfe105694b7045a8d7581631f44f391d commit d67287769e93da7fd4b0ea1a5ef14f68c2cf527c commit 2d427248aac4e4c8daeb1a4e021f9e22eb0c8e6f commit b5917a109f1630379e83a37bbfa55a9198d50c66 commit 31335aa8e08be3fe10c50aecd2f11aba77544a78 commit 68d46e52092d9a94370d44cf23db58cfdcc4fbaf commit 60017f34fc334d1bb25476b0b0996b4073e76c90 commit f16bfc1d5de082f50ecf87eaa98c357226ea06f1 commit 639e30ee3950dd77606d91719ba85df27b882f0e commit 45474ca4814f0e8d70a390b47afd607cd682b976 commit 9ebb80e80e471fa314b9bbf0a031b3bbc7b511b8 commit 70fff19a570d4c9f73ccf0ca8c8b261b467d2491 commit 4ecd56fdad5681c7c89483c26b5130977ace9fa2 commit 6438452de4412785636e803aff58fa2e857dc6f2 commit cfb0fa4241257b73f2a074f2563af9a8704b1b08 commit 1c66a12ab431cda82a1dc53fc0bcd54370014755 commit eefac38ac4a38ad93f136126227dbcd35dd3225a commit 29063c6a6a57b8e6ea932ad50728b382ec1ddb59 commit f0e2f00c49db0cba1feff7ce5a5f163d2152056f commit 03d2c54d30901916addd50abb0a2cf871965b8e3 commit 51aec8bf16338e5d7f34ebc33b173b0b9ce20973 commit 8c9c40ec83445b188fb6b59e119bf5c2de81b02d commit a791dc135325862fdf491ac088f54993710e2515 commit ff21ed39ca68257aebf42b23afcbc2db66dfecde commit 0b3ed50eee5df65e3200c89db7f32f31c6210333 commit f9e932a83ac0bb18ff71014d912af9c8e4d8eab0 commit e5d464d02f0681c4677c0bb5f6c0a70c8be78ab6 commit 40151be79668232187b1ba7e00983be76a7f5845 commit 85d53200507916955be64b1e2cbca713b8ebe3bc commit 825477e779121342d12e3c871a5e7487530b5a5d commit 7573e6577f7744fa6c5f48e5f521b780c97991ef commit ab30464cf0616d0aee00df899115e19051471281 commit 758b018aa28342b5c54646987f8f6ce675cd7bae commit 1bba5543e4fe7f60480fee370eb260618ee98282 commit eccfba1785b52887d0aa4d2940a396afd53f0054 commit cae5cb0cabc4847781fb359d98f7e1d9c7a7909e commit f4a2f273033e059de2266aa10b6459bd36b92223 commit 4ff0856db045e1b18074127cc7222c481a99657e commit dd9b18e76f0434e47ee8f5243727c79a66a85243 commit b78e5d830f0db8e6d998cdc5a2b7b807cf463f99 commit 68ded02cb2c23f1aebf026196a793959bd0463dc commit 7bb91228291aa95bfee3b9d5710887673711c74c commit a4a3798f0077a1584491574027b0067c13396d12 commit 1ed1f6be6eb3daa8097d6419dde516c9854a8790 commit 46c676600c715f833b066581247cd5a461e03441 commit 7a3f8b7c4cdb9d678d6311ca93e6b793e8957295 commit e1f84eef313f4820cca068a238c645d0a38c6a9b commit c969c5fd21fd700b126aa139ec57875697946474 commit 23fbdb07d6a729dd6a1df8e0cdd5772a5935c053 commit dde01ed5b07808be13d4469f90e578ff83774c25 commit 62a21a7c6a1cb7030eab8d64427d93b97cdeedec commit 70296670f672e470a5b42f72468a9fe631264070 commit c73cdd12de96ac4ae175b5095b5bdab6af96fcf4 commit 9dea5dd0e9dc65c9f5fd9390062381b17ef242b2 commit d27ec594b48d9d2842af9e3fdf3159bfdac1b1f8 commit 34dfca890835ca9f4a59c8a2ff6be8c0513637c7 commit cd3a49af58c23dd5ffa1d4d5a120ee2354d2e8d8 commit 0c89abb25d682f34582ddc766e7e3629dc8e168c commit 3a876060892ba52dd67d197c78b955e62657d906 commit 2efc30f0161b064f6918316ecd486a8e3feee10e commit fc0cd4cd1f7fbe6b0cbe651a8b6db6ec5476c949 commit 02bcbd6bfc5932d4300b017dcd2ba7e7bbbffe79 commit a92bfda8783729ac684a0f005a1680602ed1096d commit 8a948b1b2f2bef2444c403a2884134d46100ec26 commit d4242216dd792b2af6f3e6738dfa71cd50bcd791 commit 79c0d7ddcbb84b2a714620a2abc5016529fcc38c commit 556bdae320b2b6db124738eb97f2624e92cceff7 commit 826f03b8ac7a9c4660de9b65a81e8926c60b3b97 commit 2f4ca1ba6c9e7a4c2eea2ed8a378817ec1946f4f commit e7c94bfb747fcec57528f89e53a1461b48ab06dc commit 65529fa32c60ea15514e99b6ea12304aea732b67 commit 49791b988ac78531ece312043d0113ad1ff9cf0f commit c3db1b9065d08dac7dd602301c42641dbbe89990 commit 158225294683310566445f8477336e747b74f03f commit 6da15a236c8c80d9f87e4c5216e00ad8f1cace2d commit 17529ea2acfa3e2118f5a9ee911e0daf2d88c13f commit 4f76da231826190658d19ec8d89ea8cd46fdfb7d commit 615268d4935082ea64729fcc8a35af394ff90e7c commit 41c81dcf599918c53e08933a0b0a522508eb6019 commit c7783a6ed4fcfad9acd353a087384d31d4cf42b2 commit d3d4211050665442ce50c7b5e837b9031ee85b33 commit fe77d95f7a7f2f567205ce747124efa465fb01be commit 94caa423e2b5658626382ba9d98f989a47bd2b8a commit 827e3c9caa77d358a824c3f302032ad6c9d2ba46 commit 34e205112ec078ed1b24e30d90af81e43bc12f4e commit b8e13105b7fe9a0adf1dc7dd3d5d0647962adfc0 commit d56e38d51cbc902a27f8b2ba244bb6a8950e8a7c commit e7dbdfa226ce621931a84f60e885d42c232fb990 commit 247a94a627dbd9fed370b575288b874ef4a01991 commit 39fc82b7e031dbf5145de485d66f4a23ef711786 commit 43080c9b7536c5cbc53c5d8c74027c92c7e0110a commit 5c1a431aaf52bbba8b6e2c4e9b4037a09509c0e3 commit 3b304bced035fa4e1144d657b4687238be931806 commit 61e4de65b99c616d5e074a9e2a4a1a9f821a964b commit 4bd09d7481047500fcad389251e13946c083b9fb commit 34955a1e797d074e72d0ac6a514d934d8fe80da1 commit b04fa59a51e80eae9883a419e41b1bf8179e5a42 commit 410e747401a3121cffba6ecb932f5df596799550 commit 70c04ad8441a60ee65ca2e1c40fac04882ba09f8 commit 419c14521e0b090e82353556008833d58c2efde1 commit 1df7e569522486e58307929a726ec8f303c5abf4 commit 3b4e83a232244e2fe911bd39b322e0dc19b22434 commit ab2ac59c32dbec068954de30eda741d012be3c74 commit 1dbec5b4b0ef319d6961d3ecb7384b4f9ef9d358 commit b0f4b23fc3dbd8c5398e9ea9cf1f16a00d9006a2 commit 9b94c609cc1757d5cd4621dc15ba73faa492b99e commit 736ec9fadd7a1fde8480df7e5cfac465c07ff6f3 commit dd80d9c8eecac8c516da5b240d01a35660ba6cb6 commit 4247084057cffcd8f9897110d8d827d550858dc6 commit 88c98d54b220dfec0b8e4a4400f6822aea5a383d commit d4e8ad908b2095388a300b19d76b78c170052a8a commit 221bb3a9c34f8004c10ebcd0eda9d74354d519d1 commit 7136f956c73c4ba50bfeb61653dfd6a9669ea915 commit 1e0301e127cfc708c852278539e0bbd4c77ccb09 commit 1a468dd88a13b39dace8b5eb87a274782a56cece commit 7f0eac6564dc0967fcd430e0b729068afb70d60e commit 0cdbffd55f11ab39e5f8902860cc48ae967cd1b9 commit bd7352332b60a5d2fff625332acfa2ad96e0ca1c commit ee10818362d81ca1796cacdfb8a6c6f857cdb34a commit a2224f2d458a093486ede49e319a32f02d99ef16 commit b779e4b973b7001555efc9120a7f07e4ae554d9e commit 2b61e16a3c875f65e341c3769ef2c80b87cf45be commit 04e6fcc1b374c28e53c1b3f8b60b935a056c369f commit 75cebd664d57a78af3e46c14bd2659df0a08847b commit 69a3738ba57f4837a7632064b2f8c567282e03b3 commit 95589cec1cbfe260ab03281c310e4c3a5947c84d commit c9424fa1f856eaf09e09a3381fe998dd6f905bfc commit a062b8cf811d49b7ba7203d0ec5bd9fe0b61c66e commit 25e4b26672a0908078e10733eb20efa20800e534 commit 42b2bdc8c478a705a9642c85d8b3802f5516447d commit a108772d03d8bdb43258218b00bfe43bbe1e8800 commit 3f1a3a28e9e00a84705b62f0fdc5e31d0f935615 commit f5e92d23f51ced4f366b3193822f705a08beb3b1 commit ad74457a6b5a967641c80798aceb71503dc2bfd2 commit 0d6516efff2cf275591c57faadce249257d58980 commit 59c43748c7c82de9fb537fe790cbfc71734333ad commit c1c39032a0748be08f6bc33a8dad70b83ef311a6 commit e0f1d483b85bd35ed10985e7d3e64386e4e14e50 commit 668562f49dc67a16e3649432cef341d1649c1109 commit d67927e4483811a23bca1a5508de53d289df3209 commit b70cfd91a980fb423299d1c48f4127d4b7fe79c4 commit 9e33e951ecafea581a5d346c56cbdd00f58814ca commit c1e48e36c120df7e3a3cb39d17d64c753485f225 commit 73258e916a4e7e8adc9402da68ad9bc40dd38686 commit 04206ff06a849834e1feb21b51735fe673a3e484 commit dacd2d2d9d800b7ab2ee2734578112532cba8105 commit b167259a12f2c49e82cbd077499df85117177a39 commit 961bcdf956a4645745407a5d919be8757549b062 commit 851d635a0bf2a741d0e57889b5defcdf9ebfc70e commit 4aaa1a98331c9f9fd31f4b80b913c8f0c556c90a commit 5d53f4c22d367b214f6f737db5cbe6f4a86db747 commit 29a051bd468cba31c227af579a7c57f250570cfa commit 1416b5473d34d89a85c02889b724f32b56ef12ea commit 542110f21d811f0fbc661bcc9365e45e23e8d422 commit 21f0b7dabf9c358e75a539b5554c0375bf1abe0a commit d1e2d6b78ffc0317b41e1465b47e325e2765e5e0 commit 8adc718881e0a70127f8843dd70e69a80de39352 commit 6ad9aa476ce23be45de9dcb03edcdbfdf6117c25 commit c85d00d4fd8b98ea4d16817f397a4de5e177afd6 commit d62c43a953ce02d54521ec06217d0c2ed6d489af commit b96fb1e724ae6839d5bffcf42dd3503db7cc7df5 commit e4dc45b1848bc6bcac31eb1b4ccdd7f6718b3c86 commit d819524d3144f4703f45f473fdc85ad7579ae94c commit 8401bd361f5991ccfe9377e502fa37203ad70320 commit 770e19076065e079a32f33eb11be2057c87f1cde commit 2830ca9e5b98bee82f1d1e284ce23fe7fb244ea8 commit 9b6a16575ebf23a98a9ff84aedde9f3b25731714 commit 49da26d7b418cfc99ad2473a2e3dee2e08c5ba4a commit f3b173e9094f5b02fb92d641e3e71fee0bcda73a commit d35a4bf66079b92e232ac85b08f19312be9b7eca commit 672c473576ca5c9f5a40ac848c938e6898a5aac8 commit 74f481f187ce8b37ec5143cee19147da5243009c commit e10ea7b9b90219da305a16b3c1252169715a807b commit 02c830b3719280be4c43fe78f24fbf5db4192f91 commit 549eae27743116da08a7846e09f1e910992af655 commit 1f90b1232773249d924868bec3c31525a69fd482 commit dec4ddbe1d4a4414092309611cc97e6b9dc7ec3f commit fbf3093466d05461e3f307ffe6b1150daa4b065b commit a7b98d4dfe68654641d56cdc7eace2c36be93a2d commit c989a62484ad75e0a06f2ffe67886e7cb6d41659 commit f47f537cbaa48427039f61256f68ce08986d8eb4 commit ed712d30a9d0b8a59d6ed001cc7711d7b9c5ce54 commit 3cc3dd73c420dc70cd366f91a680035ef47edf4f commit 3913f0179ba366f7d7d160c506ce00de1602bbc4 commit 876552e5d50178cabaad015a464f116c1944739f commit b98451dc7a0fc4cf235dc09483d7cece362d9ac8 commit ed2eee42d36267bf9e084d7a13fe5c0100d1c64b commit d5c6ad72966aff6df9d969095b95478efebaa770 commit 2f9d510f810cad1042c6857a516177295eb3b42a commit 670c6edfbb73fa94026650691ba23842ef282a6b commit e6a7746ef9a6e11c271935292e381acdad607c9a commit 6ad045856f7d7d538dd4904a10470989c8f6081f commit 7f89f9973cbe7c11338f69bcf134de157747d20f commit 8886200073ee037027d727c2828d881257e28e04 commit 40e0110a85674ea93614a5863b852d5b3bb6e445 commit 822a9778289b9be9f29b02ccaae81d36c979f40b commit db62b2b7893f724e5032229443b03e0494856aef commit 16e5859d9faee7b839531e7cb8f4e98954108c75 commit 710080a3794bed269533093f5d2d9e37908962f0 commit 064841347d75e094fa2bcb5b997639ec9e5f9a5a commit fcd3e58f09952d836d2f491444292be2d8bcf7c5 commit 7ef414375fcc001b6d0745d2931d91c9c736e18d commit 82bf0f18ce99edfae2e5b4f753e6b2e774ee6226 commit 22c42b0ec225c92db33e4b3045ad15baf1427cff commit 62f0576c42993a442ae722fe2e67a140e4669945 commit 47c2790ad69d1f072e7e26dc16bb91e99dd4c946 commit 10faf07871b257c46baea0d39df585bade6e9266 commit 9c75891feef0f9f67cf1c8f8038371006e25d23f commit cc67aae1e3a330e18ead512b525b8721a3b05a6c commit 6349c73859cba2fabd77494230306ae8a7e45b33 commit 6eef37460584269b240f45aa47ebb61aae848082 commit b0d6de32e30c635aac22e52357b090982d94df52 commit b0f5b1004ef8fbdd7cb314fe0bbbc115beae057a commit b81fafb9360f8577f660eb996602a7a58106bb7e commit 1591a6478fbc61a0b30765a3c2b222fc50db849e commit ba5c07129896faa2a261d57ea2176841fcff8723 commit eccff6cdde6f47dcd88fca8c638e0d651f0e09f8 commit 441595baa55ac7b60fc9a344228faafa275f3354 commit c4c3d87be5cbab46039633731d8c5fb203c7a95e commit 5fb78600ec1504d30a7af7b0fdf2f2e6870ddea7 commit e7f2f4cd67443ce308480ca461806fcc3456e0ba commit 796d6a37ff5ffaf9f2dc0f3f4bf9f4a1034c00de commit db25e5d51f58add0740b17d8ea5cfd4cb051e3ce commit fb579c4229d10b0d98c37ebfc5087863574a2524 commit 0c41021cb812d1492b426fe8d0435cd529771ebf commit f57da8c04f183f90cd450a5d5142109fba340417 commit abffd871d4862f9e77979708d1df45152becf8b4 commit c1143ca2d523dee0f6012638068abd202a50a42b commit 2447ba5bee91527d3d49c5271b6c34a84fc67bdc commit ed2770038bbc67abc60aea0108b698be3bc93e65 commit 63423cf109d8308faf5d5946b1f57f5b0d6ae8f6 commit ca86bbdd9b47464d78ae6af565a6e78c6e4e2fbd commit deed8ec482a6e7e84dd5bcaac5f77c75bd8093b3 commit 6e602264b9a8adb3133faafdd06ba0f70716a2c2 commit e294bf36bd9b000defa9f80f054ae355a4914b0b commit d1a4ae582448a4afe38b7f117523fa2ac2e96599 commit 9680810f91f2591b16b76f73d1e0d49af874be0a commit 8bc14183988849e99046595785ceadbe0b88f7a7 commit 4aecd050a825c1bace2a35326b4c8faacc9ecadd commit 66990450e3a0b6dc7baeea8f69684aa5d3ec2ba2 commit 8434f8180216a9c6ad498c5f50e05a2cdbf81e03 commit 41da5fd2d93fa44946cd7d202178f982cdb587d0 commit c09a9bee6459eb6976b6db3f33d2776243760d3f commit e4cf73fdfa420eb73507cf95c165d5d538d70d76 commit f5c7e7797060255dbc8160734ccc5ad6183c5e04 commit 83d29a5f8a5a8ac76fdf8b8ccca65899345e6a9e commit a6ad27cec585fe715b95fcc930cbc460c678080f commit f4b92fcd740d7c90eb7b011f22deab6192ffe44c commit 4953b6b22ab9d7f64706631a027b1ed1130ce4c8 commit c2b08e7a6d270d25e8041510adf82b4a657142d4 commit d4423feeb7d316f1a31a5865a21b195940d4d7e9 commit ee34b77f681e9656d229b1df48ea67f019bb6335 commit 7221941c4f3249f6e67090820c827326e2e4459f commit e71def057252c0b5189618ecbc7141b56db4a74b commit fa0706e9775c10a9028e0b8d74c274cd4a179fda commit 02d6f9a13ef3316da5c64540c5a376f07781c853 commit 71dee0361bd04f31c37525e69817654c6e23c97a commit d6cbe630f3e9a5b11ba4082ff980ccc094224610 commit 110ae8a21bbe779a133c1672a1463105c9d50590 commit 16fb4dca95daa9d8e037201166a58de8284f4268 commit c05d789fed948ed6a45963ae0d5d79c67b87aebf commit 68ce8b242242651eb3cb4ff29b79c44d02f752c9 commit 4624459c84d71e0d5f94ea6a7b2c4eec4f1d122b commit 8522b42aade9dd0a0659c94095094a41e9664309 commit 0b844b6ee28cb99ca387880435044cb55a51d73d commit b091fc6f8e5bb27577ffb71087f06730f33a8908 commit 6974340554d227ab6b8ecd933581857b227f632b commit ca07f4f5a98b96211a2a8fe51b35c039720be888 commit 25ea501ed85dc3c224db73fb79d38b6109c1ad99 commit 4bb71fce58f30df3f251118291d6b0187ce531e6 commit fe6f695d8d03f98a04f6ce6f6e8eb8e4d0c450fc commit 48c35c428c7feb06761dbc398139eb7e697c6608 commit 72ca70acc7658b99ec39b75971002fb1c8d48c1a commit 47cd3af67de0bef9d50e37197dc307ce83768142 commit 849b1f33437e223c0933b4aa803356542386a989 commit a40c7f61d12fbd1e785e59140b9efd57127c0c33 commit 0479956c94b1cfa6a1ab9206eff76072944ece8b commit b38e77cb7bebd341090f99021cefe6cf81604971 commit c1806d78eca8df6e9c6d07652e1a0bf1c4669984 commit 998debbdc8f49bea4ea8bff9852faa170e996bb0 commit 757eb2bedd08a1dde6dbb67abfdddef8d8a2e882 commit c2dbd69e7b3a02b39ebac262c8c6c7f53df584c7 commit 3e43b760c9e14fc0b7bd553efb01d9ca825cf338 commit 0641dbefd4a14eb262583a595074431ff1ffd270 commit f3e6173b4bbdd9116c9a085998d237e1c2724a2e commit a97d0ec8bb7cb044d3d7d496a12704daa17dc636 commit a0d9084d7f6f5ae911b40d13ce33055b6c7aaddc commit 435d6e6f02234ca0f2df88f4bdc2297da1529379 commit a5ddd2a99a7a393ceb023b83d7e78fbb3284bcfd commit 39dd0cc2e5bd0d5188dd69f27e18783cea7ff06a commit fc44f3636a4db6544fd1532280e8adcd1ef13ba2 commit 19b5e6659eaf537ebeac90ae30c7df0296fe5ab9 commit 461a4df2a833bc6d83139ecf117e2f844f38f655 commit 9f4a57148120bc9178922445409836d9fb102aea commit 43bee41415a6e70719dfabfa52a413064c3cad51 commit 9d6b59478cc57469f57c57a492aee732d5ef094c commit a70abdd994cb0e799c131d3db2821c02f85422cd commit ec9c88070debd8d87335f2468481a41d6bc2d0c6 commit 0406faf25fb12d29cb1823e641c6f3f3e2037735 commit f158936b60a7874f29cf8de8d83191ad69119c11 commit e820f52577b14c63f7a15f534e17088d3c6afa6c commit 84ec67288c10fbf136aa050d00b0fe7a89655da0 commit ee7d633f2dfb12bac90898edf2ceb5f43a4957eb commit 95a77b6331c2d2313aa843fa77ec91cd092ab0e4 commit 6ce6fae8453687e39e564dc15b6142fe79d76ad5 commit ccc2b496324c13e917ef05f563626f4e7826bef1 commit 16deeb8e18cafd30e70d8dc2b12a753b28298d8a commit 4aef2085613106d0a3ce868a45f080babb4e3478 commit d6d36cf2f8efd78455286050d6d8f9a8969d63b3 commit c7bcc1056cff6d99d173d4707057f3dba94d32d9 commit f683b9d613193362ceb954c216f663a43c027302 commit 7bfa5c7b28d66d89daf0808bf36ab7fe0e9e93a1 commit 0055e45d837483d644b868755eff6091b5b51ce0 commit 7fcf19301ef745adfa9fa1baa7b829c77dec5e22 commit 52a504e868e78d866ed204be59be96abd62dc69c commit 4b5a51e45f296f0477485cadd1fb7e03295cc455 commit 25bbfb930716390405770bb79f0d348ef93c5a7c commit aa17e57e5c67330c36d915da2925ca27099c096a commit 86a4e84a9d5247daa2eafef05078ae9f3e003bf1 commit 47c3d0752bb6b412b8d1c08a1e88738fe5b9829f commit a50ab1bbab26b26fa070e83c47687e6a0bd52302 commit 30b1a0797e0bad14f95d349b43e3df3a157b83b6 commit 09d6838f377e273e112bb20eba1e569c62e1ceb4 commit 8397d2984528b838bd4a04af3173049426d2ba28 commit 43113fd4c5f562b47da68927b9ec2369e1e76358 commit 2f24fe8c54cc8d7e3432c17988ded0fffb192c1f commit f3f716ae5d827fbbdf994c9d5b05d05fe33c8ced commit 453114319699b6bec2f2ab9bd87617ba25f6215e commit 45eb009f8d1d3cc38de9c3b5be20301a2aa9cec0 commit 85f17d677f6c40069287617630f202eb20fcfe36 commit 5b415212686a0fa03f9f906a0c8ad2410590230a commit f6f8bb5989a362d1c5f613c4487dc7adb8627dfe commit 95d8c67187bcfaa519bafcdef9091cd906505454 commit 907cc346ff6a69a08b4786c4ed2a78ac0120b9da commit e8573000f4bbb7bfe48da5de5981e5dca048c433 commit 019d157e5b0355b4da957f262b3eeb3b7a948f8b commit 7b4d8db657192066bc6f1f6635d348413dac1e18 commit e3e7f178d4d82743786d5a002b714b5d516f5870 commit d25404a359b24a887db56b52064b754f79921bb7 commit 2ab69739209c843a47af82c0620036b233c83688 commit 88b61e3bff93f99712718db785b4aa0c1165f35c commit 39a35d52d48402957ba915a9d50b2d77dac45bb3 commit 7c32d4e37ff3595ce947e4e0a2f098fdd05ae7d4 commit 642c0401135d9877d6888fdd2b0fbbee3b134409 commit d0fa84f174770679ea22076f4f754bfde2f3f0e1 commit bb66ecbf122cc5ca52c569f0f84b5d1b2c00f6b9 commit 629c30db7c6812fe82d2dcc0110c9e994a831182 commit 74365388999386d8becd147945a714be2c36228d commit ce754eb9392ecdf1e843b209a643c4d5fcb2d7f3 commit 425ad8a5d3b09f09256e44cb6b55959b18c15618 commit ec71b250170f60986ea1d2feba6d3b6a63bb1ac2 commit 93cad722d3fe546744bcc484c5945d09d5f22d45 commit 5993e4c68add76bdec1efff1c534b8610f69ac05 commit e268df1d20b89d1d448277e16ce1720887e8bdbb commit 15aa13056d11dad1e54d65acd854184f3f74a5b7 commit a2d3b4b81fd49b14782ce0ff68ca74e40f16609a commit 108db8decf0e5ac5f7b64967f434a32125b75bb0 commit 52642d13d600e7580fbf4c09dfaf15e187ab1625 commit b077656b8c5ec9ac238782e20fad42f6d6d299d4 commit 167be8522821fd38636410103e1c154b589cb1d9 commit 82806c25d5e9d927ecb68c0c3679dd41187c9af6 commit 585a82618bc422508c0c8ae0dfe2f76f22c28361 commit 7971b5c253cb1b3293dd1479f4912899021451d1 commit 3e9cf23428701f055765d66951b01286f94df056 commit 202c1e3dbc882c9040208223c12d158286475084 commit c054375159802704d099986f03d0b7d21b590fac commit 97d8d6f075bd8f988589be02b91f6fa644d0b0b8 commit d3d61281edc0ab0c3d566e760d5bd4db5a9c217a commit 7712b0a7df76447515752afcf8ec470b17ea30ef commit 936675464b1f481ad432d6a4fb75405c0abc71c7 commit ec55a1c0813efcc8629f4af8e17b6da5265642e3 commit c55bf690fe79f04cb8ebfe34144079777021cd7c commit 567df29f51a582ced8d2f56c7f531757496fe7f4 commit 1f21390ec6026da538a71ac254295461be7ee0c4 commit 3267b7c05bb76f8eb6da90ae0f5b0d523b9f611e commit c02e6444117f112bea468d3615ad6293cc7de64e commit a6135ddec2258cd52b5c8d20b45bbaa29b80c5a0 commit 5d4b5914607803407c1bd3fc8483f93a67cafd0d commit 17caab0f0b47d53ad02e20673b51f30a6a16025a commit cc8dee689a6bced98c8bd83ffbf4b2041641a860 commit e18d9839b174d6bfa0d620293098b3c6a441cc4b commit 3141d6cb64e7a76af0b87e1f28c54d67963db871 commit c08978577a7b17736d9680aaa7e0d22dc775c326 commit 525a65c77db51cf5d6c6d8e3f8d07efeb2270416 commit 5caa63c7b7e1cbffd5095b7c884752aa7228b7ef commit e32df0c7ecead95d70ca89f39b1b2b02a59ff691 commit 1e939ea1bf4917095575fe4ff1a42578ff234605 commit 047783cdd5f604d87398236beb4971abb4d43293 commit 18b85e98e10d9cea5c23b710e78c5f68897fb3a7 commit ce438e99015871b9226c27066fe72fc05f18e8bf commit e844cc250f33d207077d0af9337484d6c94048f0 commit 415be17fb2f4a70afc827332c936955b801085ad commit 940d4dd402e97941aa0a92436cc3d4c2d7c13157 commit 9e447c811ab31cd69d8fff18283fb695e1ff59a5 commit 2d89e2ddfd00ca569dd73883c7c70badbd57f4ac commit d7274ec723cd0c2359ef75f84deca462a60c5025 commit 5d8c3e836fc224dfe633e41f7f2856753b39a905 commit baf28cc10ade932cec707e3fd723e6c2850efe3a commit c19a5f325a7fb5b353976d66d6a92b35c0322138 commit 1014bd1cb32552b732fd0f6ff4e68f32188d59e7 commit cd4c99f103af5a85fcae5d31a9e85361679ab979 commit 5e1fdf76cf9b1b764d6061d78c29901d774fc061 commit 3ff4ccc3e938159c47c4dc3ed8e2b964c3604b50 commit e67135571e4073e1ee252f839d7a1ccf10f89410 commit f61a825aa86115dbdcaba25bba78e007b5e8e1b1 commit a79852a39332614d30a0f81785803ba72877a575 commit b55002b9b575770fc0619dee8f6203697054c861 commit 4c3386f64a432b3697fede579d06f9c1058043ad commit b28d204a7c19231c0a37359f82dc8c4b234d1d16 commit c9b48b91e2fbb74fb981aa616a6ef3c78194077f commit 0bda8d828f3af92c37d7667d598dee77a64cc46b commit 0b37f47494099e74b3cc11d71a763b36b70ea2b7 commit 730548ba023113a15e5233deebd49ffbb02b7322 commit 8a7c3ce108544334a9c7906f61d2701f433e44ee commit f423fa1bc9fe1978e6b9f54927411b62cb43eb04 commit 54b978e03a3ce7aa3b40deeb1b4c0c9dd6660aa1 commit fb443f36f3b9af6a4590b6e65e2d7affdfe0da18 commit af4e20d335d4414814030ba26f1689884c831269 commit 1de2e7e08e8cd0f281ba9f079a25e72543fe82f6 commit c56453a00f19ccddee302f5f9fe96b80e0b47fd3 commit 484b2b9281000274ef7c5cb0a9ebc5da6f5c281c commit 070a2855900de17b1e11a0dc35af9794e80f1a28 commit ccfa6d35f9233702c924316cdf40c05b6ce88113 commit b2e3a1af8cce4117de06ff1a4eab0749753ede27 commit cdf6428dd518435a05739abf7659589de30970f4 commit 4ae9f874dc1d662ce7bfdb8144903608bcc3706b commit 65898687cf7392c372ea8d04a88617e2cb794465 commit 98828955971363e838149105c268b1fad905f15b commit 1aa3834f510c9d9206ce4d40aff4903b0c016761 commit bdef2b7896df293736330eb6eb0f43947049b828 commit 89345d5177aa0f6d678251e1e0870b0eeb1ab510 commit da44c340c4fe9d9653ae84fa6a60f406bafcffce commit 062e720cd209d8091c4f3d118d93973f02209aca commit 290aac5df88a83e264b3a73ec146e5e5b3c45793 commit 0bc79069ccbdbe26492493dd0c4e38b7cadf8ad5 commit f2fbc72e6da4f8e01fe5fe3d6871a791e76271c3 commit 685a1537f4c603cfcaf4b9be56ff6a571f7ddd08 commit b86406d42ae3c41ae0ce332ea24350829b88af51 commit 7fb68b6c821be7165d5be5d8801d909912af9159 commit 7e6739b9336e61fe23ca4e2c8d1fda8f19f979bf commit 91954c6c904b515baafaee6a1f35c94409a3bb68 commit 8ab1d7a27eff87001ebd0977db600e4187f63f78 commit d37f379ad04dcc21ebd1d2380c3bc979d54f7c46 commit 8abbc4f768ddc5c2190ab8966e529cec42b4b2d4 commit f7367b5fe0e38af02d6915a355f2ee63b172c9ac commit c1969fbaa57d88ddef626bb8ae313d38478d8631 commit ab5220bb5a910246c61512a9e29a4e2406cb1ecd commit d35e8b7ae01430b1e722547b2ef40f42dc30520f commit 96ab3cb3b0f862308a03046d01d66c7b4154846b commit dfb3367bd082ccf52d3c13ff62257f08407dffcf commit 40169e2f37127b7fe60736045b1f9fc04f76b471 commit 283e0a673cdf59fe103707ac0466492b315c81a2 commit 749b6c2ac9d9a7a4d8f4c2e4dc6fa830fd6c6ac7 commit 7aeb2e47e43d5acd4638c64b4c0c01ad90feea51 commit 1178ac68dc2869a2f4192600b701de3d853272d2 commit 380202c84454e89d29a9abc670f09b9145617d58 commit 345d6493476615494bd79a8fe77661918ea7c61a commit e4e481e4d838f30985dd46d43ed195110ed265f5 commit 4931ce22eca6ed5f8a3a3820fd13e586011ac219 commit 8cab4ef0ad9521030e1ae4bd294a1e2e6a04659f commit b808a7eb30b02e05023b505fe6db590ba799683f commit baec651f4160f4c3f029edf84bbc18b4fcba9cf5 commit 51619c671316e96d7adaf2b6ea94ce245b81b6dd commit 2d550a159c55ac836a554fd605545b0feb5f7266 commit a2909ff460a8e02168b3658372ebc897f7ab2315 commit 47b7dd9f68c12e7d33a0dfd3d9a5bed755097de0 commit 9114b55fabae5522b7124af4f16ea6ce6378aa19 commit b33cd65df18f1cf60b066a02c09df92b4763bb31 commit f1b47f0004cfff051441aa93b7115d756d5eebb7 commit 3f4dee59253a6882acde98a2a027e55f1330ae86 commit fe674c0b6f5382b7c377ca2c418c26dd78b428b4 commit f638fe27b817c755e017b8a6ae4b9b4224461941 commit 46c87432e3d4cea8e1a7ac6e9e3ebd2462f47617 commit e626d9b9c6e038a6918aad1b5affd38f6b9deaed commit 11895d32ffddb50152f0a1e671d36b7f60e4daba commit 54fae65ff469a79fc0ca46f480c4e7fce50f3963 commit 36939c94689ae7e6aaa9a0fa37e5c41616f76665 commit 9691a7a776302c85c10294f1a92c15c7f57a5947 commit 07ebc18c047adcd72905619e72ae7c48db28ab48 commit a3daede47576037ff7bbbe9cbd36e52a71d92bc8 commit 7e6d5cf8e3e3f8050de52a28236d5a172caf2da9 commit 95c985ffc63e2a7d8f6aa18f9351f5010a8d1adb commit 8c39634d28fa460869702b9801d2efe06671b342 commit 525530ad9a7ec9aa34266e1429cc5ef9acb58e6c commit 21a550de5faf9f54013334c9a6a7643b8fd80b36 commit f6aa84b83aee629fbbbc4ea16c2c142caf920d5a commit 8799c0be89ebb99a16098bdf618f49f817bef76a commit 7d30ccc7761cfcd6756aa0b760c5f5493038d30a commit 5e69732d4a89928b7daaa651ad869cebee28bfff commit 7e4ab9fb2b9449ef01977e79157d06c8900f73fd commit 312b4dc11d4f74bfe03ea25ffe04c1f2fdd13cb9 commit 9a3c6067bd2ee2ca2652fbb0679f422f3c9109f9 commit 2302d507149f0ae7cc697089ab5675a2d4cf9d2a commit 70df64d6c6c2f76be47311fa6630d6edbefa711e commit 7a3353c5c441175582cf0d17f855b2ffd83fb9db commit ab296221579715fb8f36a27c374ebabe5bfb7e9e commit bafaf67c42f4b547bf4fb329ac6dcb28b05de15e commit 9d84bb40bcb30a7fa16f33baa967aeb9953dda78 commit e8bc52cb8df80c31c73c726ab58ea9746e9ff734 commit 7023472834a39341460dae5c9b506c76c5940cad commit c5e595e752b3a1c68cca57c3559521237332fbec commit 8afc66e8d43be8edcf442165b70d50dd33091e68 commit 0e0073eb1b60f4ec6faecea034a6772fe1409a88 commit 4f5bdde386d3b8e9317df5562950e1b4fa177599 commit 99243fd1f3ca40d487209ac76241de0478962a9d commit eae2331899f9dcc923d37d1d753f2de847c92359 commit 5ff32b52995155f91de582124485d0f0f8881363 commit 2fd23d467d4fb4e9bb3c3758ee49799f690f5f72 commit c19d3eace484ca5627817a1de85af1de06d538b6 commit e50f67cf5e168d92e24cfb61fb11f2f0a35708cd commit fa28030a83a6302f8724cdbf0c477536b2101033 commit 20dad3813b3c15d118bda0496711eb7dff98e74a commit 876fcc4222e1d0e5b73343f4010a8b66be058f48 commit d6170e418d1d3ae7e98cb6d96d1444e880131bbf commit 3867bbd44f2894a4e2b01286b3b378c058992cd7 commit b73353f7f3d434e90da9f0e127bba1fe26cb1287 commit 6f4f8ff567c48823f8279206e236643e8e8f377e commit ba30b223c93ec5af63993b6397cd7316e5acb6c1 commit 1298d9ab848653fc35431581d6e36662c7b6935a commit 15e8b368981e1e8420f08b35bb12b794b200f4a0 commit c8588697aa4ec1f3b7fc09277cf2a5a662d40834 commit 9799702360d51a714e888fef4ab5fb9123dfb41f commit e5da651985be20616a9e0662032e0ea2ee4dd468 commit 571c053658926df3321633b7133f574d3e656c81 commit a98cec220aa4b2502704aa0196da1bdc9eb455b4 commit 2cc4a5914ce952d6fc83b0f8089a23095ad4f677 commit d2bd0831b51d1123fc86c019db3452d6a1ce5029 commit faf4d8e07f5b67bece91723ad3e8b3f88a3dbf23 commit 27bc50fc90647bbf7b734c3fc306a5e61350da53 commit 6c482c62a635aa4f534d2439fbf8afa37452b986 commit cdbb816b5bfeb69ad925805d99b2ec312b241f1c commit 44420ac5f855f5704d8f939926ed145f99e49e55 commit fb4d5891cee6d1c14b8d8f1b65c9d061ed3a495c commit 38dbbfa57c08b29ef8cf1d3fb3ad639ae819754e commit 6dddc1eb9632b0eb6098d1dc849e8acb2408c1b6 commit 832e72dd0d705bfcb4236bb2d561d82afe253e63 commit 09f1ef99ce900dbc3659d478f006081c96cc977f commit 1ba25b6ff24303fac890d657ffdebf3e8db3bc25 commit eff4ccd11313ecc8ec94c0f39961ffbf227a406d commit 9f30bf9917612b3a85cc28dc8ef98667ad5c07f8 commit e1e6889fc7b3e5152218db7d9f03c2f81569d54c commit b1d1666276cce28743e2cf90be07182ceac14f1e commit f00844daa5212aac609d9cb97ce5e0a74c67890a commit a895014853ea6df2778533e2a0bb7a0d53f02ec2 commit 1f768ba469002d2dcad5c3d667151977417df7d9 commit 695ddc9318ad45b6a32f902b7c6998c65d575f26 commit ea19684afb545605bbcb690c49a91ce2c8e596dd commit 81895a65ec63ee1daec3255dc1a06675d2fbe915 commit a251c17aa558d8e3128a528af5cf8b9d7caae4fd commit d6fe5887ca891f5a7a3998bcbeccd6ec2e215132 commit 0811b9e4530d7c46542a8993ce6b725d042c6154 commit d3cf40513330752238ae585fdb0e46ec6baa588b commit 16ce101db85db694a91380aa4c89b25530871d33 commit ef233450898f8893dafa193a9f3211fa077a3d05 commit d9b719394a1147614351961ac454589111c76e76 commit 249881232e1471d28b68f9a3829acc14d150cf5d commit e55978a4f264676dfbbd5d955c88a60c6eb3aa7a commit fc3523a833c9c109e68209f1ecdd15864373e66a commit 9c9155a3509a2ebdb06d77c7a621e9685c802eac commit 2130b87b2273389cafe6765bf09ef564cda01407 commit 5e714bf1713b4b096d20ec75c13880b7086964bd commit f1947d7c8a61db1cb0ef909a6512ede0b1f2115b commit 65f8682b9aaae20c2cdee993e6fe52374ad513c9 commit afbaa15501125ae0b7de9dd16c6f00c85de14218 commit a340847b0214aa9b8fd9839f7b2822ccc607edab commit a31e62873f11dff12cbeb8e6f864d0c8e5be0869 commit 4545ae2ed3f2f7c3f615a53399c9c8460ee5bca7 commit 4d72a4e4fb5d870be52ce38e5672e4b71ee1162f commit 4c7f9a3c15344ccc682c77495fddea7dcb64027c commit 657e07221ce046132dd78f6e19c04b32a78b1d25 commit f700486cd1f2bf381671d1c2c7dc9000db10c50e commit b7a76a29140810807fd85d15470d91b7992b6acf commit 7cd3f6c3ace44ae9a9950a8c02ebcb8069278aab commit 001ebcf5b903646b40697d9b1dc9b24daae82b4f commit 3bd026c3e3317e4490595848261fe74d76e74126 commit 528c0e66e0c01a8c078d2d94431db80f9c75d2a0 commit ba2f09960e75accf757ed12b4ef61409dcc97df8 commit 3059cd8c5f797ad83d2b194ae66339f5c007ca43 commit 5fa993737b29bffe931cc5d0feb87ebc34cd5bb3 commit 31c261a7ffb8d5bba8144e2d43db304f2bc7e81a commit 8a70b2d89ea3f2dc1449f0634ca6befb41472f24 commit 97a3d6090f5c2a165dc88bda05c1dcf9f08bf886 commit 5ce4726a1376bd0673d7b8edd243e76fbb4476d1 commit 2abe92c7adc9c0397ba51bf74909b85bc0fff84b commit 8273b4048664fff356fd10059033f0e2f5a422a1 commit 7b476affcccfc7e644541a0a719f53fc7bd34c53 commit 01f2cf53844b01e691516b465df1b6ab01b03230 commit 1aca5ce036e3499336d1a2ace3070f908381c055 commit 7089003304c67658caead22f841840fc4a26b198 commit a91e5e3e2216354e27ee6adf9cb2d5d9548cad8c commit 7228d9d79248bd0c8af56a7667a88a875c674e0c commit 72655fb942c1e3d9e71e48e87ee439abe52f3a90 commit 50b0e4d4da09fa501e722af886f97e60a4f820d6 commit cbc543c59e8e7c8bc8604d6ac3e18a029e3d5118 commit 97061d441110528dc02972818f2f1dad485107f9 commit cb8e30ddb7e345867f6f2da8a08291d7d9e037db commit 440b7895c990a63869a9d55e5c2502dd501a124e commit 79610d3041338dc1ef554d6fd8b3b3e23be527f5 commit 09aef0258a327409bb2279a5ba8f82ad2ca099ca commit 226dcfad349f23f7744d02b24f8ec3bc4f6198ac commit 1a3abd12a394f5c66943fee75cef533069e831fb commit 63720a561b3c98199adf0c73e152807f15cc3b7f commit 5349fad8f8a4b001557633d149850a14b2e1a3f0 commit 90bfee142af0f0e9d3bec80e7acd5f49b230acf7 commit 08841950db932dc3ba8bbd4c0f1f7f27ccfbae42 commit ca08a1725d0d78efca8d2dbdbce5ea70355da0f2 commit abe4d9f03fae76c9650b0d942faf6990b35c377b commit 68bc147363bd9769a07d1cbf5cbe2bb4573f4e3c commit e105b6212f1f90c56c04439279d0ef0f8dd1c308 commit 9656db1b933caf6ffaaef10322093fe018359090 commit 969758bbf5e9360b63bbb2328ac3fda46bbbc9f5 commit 809734c110548dca410fb0cca52e6b1540319f5e commit b3af84383e7abdc5e63435817bb73a268e7c3637 commit d61e1d1d5225a9baeb995bcbdb904f66f70ed87e commit 200ec44ab7f9499a1f703aea0d7ba7d33e012d2f commit 9520b1d09ecea64c5ed9b90d6f01e10fb3f3ccdd commit b2196401949ed2517bec676928f837e6bbd01a65 commit 6fdaed8c79887680bc46cb0a51775bd7c8645528 commit d7164a5048e8a6afe2cc4aaf7f12643c14e7f241 commit d3f6bacfca86f6cf6bf85be1e8b54083d68d8195 commit 3e206b6aa6df7eed4297577e0cf8403169b800a2 commit e79762512120f11c51317570519a1553c70805d8 commit d372ec94a018c3a19dad71e2ee3478126394d9fc commit 12caf46cf4fc92b1c3884cb363ace2e12732fd2f commit 341421084d705475817f7f0d68e130370d10b20d commit 14aed119942f6c2f1286022323139f7404db5d2b commit e59843c4cdd68a369591630088171eeacce9859f commit c580d758ba1b79de9ea7a475d95a6278736ae462 commit 6cb5cec16c380be4cf9776a8c23b72e9fe742fd1 commit c3d3f35b725bf9c93bec6d3c056f6bb7cfd27403 commit 9cb0dc6ccb7df9abe1407574ed4ad84895822d11 commit 89b3554782e6b65894f0551e9e0a82ad02dac94d commit e542ca6e3e554bad53b2ea5741873b67f4585ea9 commit 5b994354af3cab770bf13386469c5725713679af commit 8d4de331f1b24a22d18e3c6116aa25228cf54854 commit a3e5ce56f3d260f2ec8e5242c33f57e60ae9eba7 commit 8fe8ce896c1cc29d6bfebb3c7b3cc948f72cd32c commit bad610c97c08eef3ed1fa769a8b08b94f95b451e commit ab007e5db5d3b8b8975c7eec69992ff38fe2a46c commit 8dc323133d74518e3b5b07242e2b2f088799ea6e commit d5e0fb0d9dea545defb963ec1073bd9a1a8b5395 commit 7461016c5706eb8c477752bf69e5c9f5a38f502b commit 6640f8e5adb69a0550fe1d224d3ac64c10f00eef commit c941ffc39e27ae46c5fb6a33e81d89c9f78d373d commit 980a2ff2cb987e2177a1bd02633f4259a0d1daab commit 6295f1d8b4503ad8a18519b781dd2d1fe5e88c52 commit f90daa975911961b65070ec72bd7dd8d448f9ef7 commit 4ff4ebac3f1378f4ba6e11fe5ad4a4ac590bb8a4 commit 19b168136395150a4a6e011f944eb30d3d85094b commit 178e31ce82d0308a9e5f2f15bfb4493160136729 commit c4299907c09a638c0a30f029338d07941c049d73 commit 308451d9c7fece33d9551230cb8e5eb7f3914988 commit 653f2d94fcda200b02bd79cea2e0307b26c1b747 commit e0b26b9482461e9528552f54fa662c2269f75b3f commit bc66c9ab162d2a633ee3eb864d7bc2369e79c1e4 commit 66f7903779fbbc620bf1040017e4833ef6a0b541 commit b91c23e099f0b65d62159da13458c5eefa76083f commit 77c092e054262b594614bad5e5f47e57c5d29639 commit 632d06985235d988c9d7e6eec8fa655be0761fd0 commit ab4b35008db9b7ae747679250e5c26d7c3a90cea commit 0d5c5c210a4d4e655feb93b379647f0b179cdafe commit ce62198d8b62734a985d22652e75a649be052390 commit c0b2753f5db281b07013899c79b5f06a614055f9 commit ce902d987a8caa5c9a96080e280ecc992414a127 commit 30b8e7b8ee3be003e0df85c857c5cd0e0bd58b82 commit 64f65135c41a75f933d3bca236417ad8e9eb75de commit e034a0d9aaee5c9129d5dfdfdfcab988a953412d commit 0c85c067c9d9d7a1b2cc2e01a236d5d0d4a872b5 commit 675d84621a24490e1de3d59a4992a17fa9ff92b5 commit 876153ab068b2507a19aa3ef481f5b00a2cc780f commit 2e4b294576e32fb02562ad6839d6888ab7b45102 commit ff963634f7b2e0dc011349abb3fb81a0d074f443 commit 4979524f5a2a8210e87fde2f642b0dc060860821 commit b7ffd9d9ee13de2c5ad88046a5149de4cfb2a74b commit 9ed1fdee9ee324f3505ff066287ee53143caaaa2 commit 3c9fd44b9330adc5006653566f3d386784b2080e commit 4f68332b2f89ab84285e5b6cb3d30e8b9894bef1 commit eca13f3c67b6ddfcc61fdb9bb1c5f9a7724e2359 commit 5428672d39b7750310cf4e328e9f94a7668b5565 commit 0d502ef8898b3983eef9e40f50dfe100a0de5d93 commit 7af87fc1ba136143314c870059b8f60180247cbd commit 2c2911e09f19eac85df83b3201b38e69b8117059 commit 8d8494c3467d366eb0f7c8198dab80be8bdc47d2 commit 7e952a18eb978a3e51fc1704b752378be66226b2 commit 0a3e0fb8cfee4f45f1b1f3d4d028a4519c89d577 commit 4d285241230676ba8b888701b89684b4e0360fcc commit e7e4f77c991c9abf90924929a9d55f90b0bb78de commit 246e667079e8d0fc85f842bceca8c5a3c5da5905 commit c149947b188c651b943c1d8ca1494d1a98a3e27f commit f8d7edb0cda6ea1cba89d6f8aac74613e9cdc075 commit 0e444a4de6b38c4593a07e4cfb5bf54c40cc79b6 commit 192039f12233c9063d040266e7c98188c7c89dec commit 6f9eea4392a178af19360694b1db64f985d0b459 commit f8794f31abf33a3b22c72002783670a95e6efc51 commit 8652da45d09abe1b3174dbb80dc5176b8c3fa08e commit df7c013efc1a0da8861099802b2d6ab2aacaeb1b commit 4b14841c9a820e484bc8c4c3f5a6fed1bc528cbc commit 5954acbacbd1946b96ce8ee799d309cb0cd3cb9d commit 5fa8813878d45bf6961fd22c8deee53f6a2791df commit a73b603f918f1425293b0b5c6f54d7168cb86221 commit 585f2bc8fe692d31593633df99090a1039e789bb commit b09d6acba1d9a23963fedf96b4191502a4fec25d commit c19083c72ea72a1c12037bb3d708014632df80e4 commit 00a6c36cca760d0b659f894dee728555b193c5e1 commit ebbaa4392e36521fb893973d8a0fcb32f3b6d5eb commit 3ca682389435681e2d660428be2187fbae0effbb commit ba891436c2d2b2a6d6c1bc3733bab3b72f07e87f commit 2f3a1273862cb82cca227630cc7f04ce0c94b6bb commit dfbc00410c48a9896d4a65600be7137202517780 commit d60b82aa4d67b2e6cf0364947a008bb7255ca4da commit 85ef1679a190a9740f6b72217cb139a0d9c58706 commit b39df63b16b64a3af42695acb9bc567aad144776 commit 4458da0bb09d4435956b4377685e8836935e9b9d commit b9ab82da8804ec22c7e91ffd9d56c7a3abff0c8e commit 91abf28a636291135ea5cab9af40f017cff6afce commit 14af5d385878d22546914d37f13a314b14825a42 commit 432e25902b9651622578c6248e549297d03caf66 commit 4f2bea62cf3874c5a58e987b0b472f9fb57117a2 commit 44035ec2fde1114254ee465f9ba3bb246b0b6283 commit 5d82c82f1dbee264f7a94587adbbfee607706902 commit dd2c028c1395d622df7ddd6837f8ab2dc94008ee commit 2a5dd86a69ea5435f1a837bdb7fafcda609a7c91 commit e667ee3b0c049bf0c69426879586a2572bb28d26 commit a26a54fbe32b564ff868710d59fbe1a387a2cc7c commit f2e1aa267f12b82e03927d1e918d2844ddd3eea5 commit 3cb93f390453cde4d6afda1587aaa00e75e09617 commit a6e1775da04ab042bc9e2e42399fa25714c253da commit 602ad43c3cd8f15cbb25ce9bb494129edb2024ed commit ecb41b71ef90cf4741bcc3286b769dda746b67e6 commit 9e2c5c651a63baaa39005070481d39dcf5b0893a commit b65a648865c4a1e717c4f56f5025546b9553189a commit e57702069b26b8601a33fdc0c9bbe40c6bb9c72f commit ed14d225cc7c842f6d4d5a3009f71a44f5852d09 commit 2f3830544a89af2e72e7fd3d6ca44dd9cffec197 commit 3c1ea6a5f4f55d4e376675dda16945eb5d9bb4de commit a8899b8728013c7b2456f0bfa20e5fea85ee0fd1 commit 12b8b046e4c9de40fa59b6f067d6826f4e688f68 commit 8c115864501fc09932cdfec53d9ec1cde82b4a28 commit 04aa64375f48a5d430b5550d9271f8428883e550 commit 6f6cb1714365a07dbc66851879538df9f6969288 commit d3d6b1bf85aefe0ebc0624574b3bb62f0693914c commit 9a8cc8cabc1e351614fd7f9e774757a5143b6fe8 commit c082fbd687ad70a92e0a8be486a7555a66f03079 commit bdaa78c6aa861f0e8c612a0b2272423d92f0071c commit c290db013742e98fe5b64073bc2dd8c8a2ac9e4c commit 24013314be6ee4ee456114a671e9fa3461323de8 commit 09bf649a74573cb596e211418a4f8008f265c5a9 commit 6e90293618ed476d6b11f82ce724efbb9e9a071b commit bc21fe9a5844c5bc8f7ec319b11d2671a94eb867 commit aeffc8fb2174f017a10df114bc312f899904dc68 commit c4252650a8c4770b669398fe7270ed8c94fc0eba Signed-off-by: Mika Penttilä <mpenttil@redhat.com>
2023-04-27 13:56:29 +00:00
int hdmi_audio_infoframe_check(const struct hdmi_audio_infoframe *frame);
struct dp_sdp;
ssize_t
hdmi_audio_infoframe_pack_for_dp(const struct hdmi_audio_infoframe *frame,
struct dp_sdp *sdp, u8 dp_version);
enum hdmi_3d_structure {
HDMI_3D_STRUCTURE_INVALID = -1,
HDMI_3D_STRUCTURE_FRAME_PACKING = 0,
HDMI_3D_STRUCTURE_FIELD_ALTERNATIVE,
HDMI_3D_STRUCTURE_LINE_ALTERNATIVE,
HDMI_3D_STRUCTURE_SIDE_BY_SIDE_FULL,
HDMI_3D_STRUCTURE_L_DEPTH,
HDMI_3D_STRUCTURE_L_DEPTH_GFX_GFX_DEPTH,
HDMI_3D_STRUCTURE_TOP_AND_BOTTOM,
HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF = 8,
};
struct hdmi_vendor_infoframe {
enum hdmi_infoframe_type type;
unsigned char version;
unsigned char length;
unsigned int oui;
u8 vic;
enum hdmi_3d_structure s3d_struct;
unsigned int s3d_ext_data;
};
/* HDR Metadata as per 861.G spec */
struct hdr_static_metadata {
__u8 eotf;
__u8 metadata_type;
__u16 max_cll;
__u16 max_fall;
__u16 min_cll;
};
drm: Fix docbook warnings in hdr metadata helper structures Fixes the following warnings: ./include/drm/drm_mode_config.h:841: warning: Incorrect use of kernel-doc format: * hdr_output_metadata_property: Connector property containing hdr ./include/drm/drm_mode_config.h:918: warning: Function parameter or member 'hdr_output_metadata_property' not described in 'drm_mode_config' ./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_output_metadata' not described in 'drm_connector' ./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_sink_metadata' not described in 'drm_connector' Also adds some property documentation for HDR Metadata Connector Property in connector property create function. v2: Fixed Sean Paul's review comments. v3: Fixed Daniel Vetter's review comments, added the UAPI structure definition section in kernel docs. v4: Fixed Daniel Vetter's review comments. v5: Added structure member references as per Daniel's suggestion. Cc: Shashank Sharma <shashank.sharma@intel.com> Cc: Ville Syrjä <ville.syrjala@linux.intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <maxime.ripard@bootlin.com> Cc: Sean Paul <sean@poorly.run> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Cc: "Ville Syrjä" <ville.syrjala@linux.intel.com> Cc: Hans Verkuil <hansverk@cisco.com> Cc: dri-devel@lists.freedesktop.org Cc: linux-fbdev@vger.kernel.org Reviewed-by: Sean Paul <sean@poorly.run> (v1) Signed-off-by: Uma Shankar <uma.shankar@intel.com> [danvet: Fix up markup: () for functions, & for structs. Style guide also recommends to prepend struct for structures.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/1559647022-7336-1-git-send-email-uma.shankar@intel.com
2019-06-04 11:17:02 +00:00
/**
* struct hdr_sink_metadata - HDR sink metadata
*
* Metadata Information read from Sink's EDID
*/
struct hdr_sink_metadata {
drm: Fix docbook warnings in hdr metadata helper structures Fixes the following warnings: ./include/drm/drm_mode_config.h:841: warning: Incorrect use of kernel-doc format: * hdr_output_metadata_property: Connector property containing hdr ./include/drm/drm_mode_config.h:918: warning: Function parameter or member 'hdr_output_metadata_property' not described in 'drm_mode_config' ./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_output_metadata' not described in 'drm_connector' ./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_sink_metadata' not described in 'drm_connector' Also adds some property documentation for HDR Metadata Connector Property in connector property create function. v2: Fixed Sean Paul's review comments. v3: Fixed Daniel Vetter's review comments, added the UAPI structure definition section in kernel docs. v4: Fixed Daniel Vetter's review comments. v5: Added structure member references as per Daniel's suggestion. Cc: Shashank Sharma <shashank.sharma@intel.com> Cc: Ville Syrjä <ville.syrjala@linux.intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <maxime.ripard@bootlin.com> Cc: Sean Paul <sean@poorly.run> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Cc: "Ville Syrjä" <ville.syrjala@linux.intel.com> Cc: Hans Verkuil <hansverk@cisco.com> Cc: dri-devel@lists.freedesktop.org Cc: linux-fbdev@vger.kernel.org Reviewed-by: Sean Paul <sean@poorly.run> (v1) Signed-off-by: Uma Shankar <uma.shankar@intel.com> [danvet: Fix up markup: () for functions, & for structs. Style guide also recommends to prepend struct for structures.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/1559647022-7336-1-git-send-email-uma.shankar@intel.com
2019-06-04 11:17:02 +00:00
/**
* @metadata_type: Static_Metadata_Descriptor_ID.
*/
__u32 metadata_type;
drm: Fix docbook warnings in hdr metadata helper structures Fixes the following warnings: ./include/drm/drm_mode_config.h:841: warning: Incorrect use of kernel-doc format: * hdr_output_metadata_property: Connector property containing hdr ./include/drm/drm_mode_config.h:918: warning: Function parameter or member 'hdr_output_metadata_property' not described in 'drm_mode_config' ./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_output_metadata' not described in 'drm_connector' ./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_sink_metadata' not described in 'drm_connector' Also adds some property documentation for HDR Metadata Connector Property in connector property create function. v2: Fixed Sean Paul's review comments. v3: Fixed Daniel Vetter's review comments, added the UAPI structure definition section in kernel docs. v4: Fixed Daniel Vetter's review comments. v5: Added structure member references as per Daniel's suggestion. Cc: Shashank Sharma <shashank.sharma@intel.com> Cc: Ville Syrjä <ville.syrjala@linux.intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <maxime.ripard@bootlin.com> Cc: Sean Paul <sean@poorly.run> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Cc: "Ville Syrjä" <ville.syrjala@linux.intel.com> Cc: Hans Verkuil <hansverk@cisco.com> Cc: dri-devel@lists.freedesktop.org Cc: linux-fbdev@vger.kernel.org Reviewed-by: Sean Paul <sean@poorly.run> (v1) Signed-off-by: Uma Shankar <uma.shankar@intel.com> [danvet: Fix up markup: () for functions, & for structs. Style guide also recommends to prepend struct for structures.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/1559647022-7336-1-git-send-email-uma.shankar@intel.com
2019-06-04 11:17:02 +00:00
/**
* @hdmi_type1: HDR Metadata Infoframe.
*/
union {
struct hdr_static_metadata hdmi_type1;
};
};
int hdmi_vendor_infoframe_init(struct hdmi_vendor_infoframe *frame);
ssize_t hdmi_vendor_infoframe_pack(struct hdmi_vendor_infoframe *frame,
void *buffer, size_t size);
ssize_t hdmi_vendor_infoframe_pack_only(const struct hdmi_vendor_infoframe *frame,
void *buffer, size_t size);
int hdmi_vendor_infoframe_check(struct hdmi_vendor_infoframe *frame);
union hdmi_vendor_any_infoframe {
struct {
enum hdmi_infoframe_type type;
unsigned char version;
unsigned char length;
unsigned int oui;
} any;
struct hdmi_vendor_infoframe hdmi;
};
/**
* union hdmi_infoframe - overall union of all abstract infoframe representations
* @any: generic infoframe
* @avi: avi infoframe
* @spd: spd infoframe
* @vendor: union of all vendor infoframes
* @audio: audio infoframe
drm: Fix docbook warnings in hdr metadata helper structures Fixes the following warnings: ./include/drm/drm_mode_config.h:841: warning: Incorrect use of kernel-doc format: * hdr_output_metadata_property: Connector property containing hdr ./include/drm/drm_mode_config.h:918: warning: Function parameter or member 'hdr_output_metadata_property' not described in 'drm_mode_config' ./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_output_metadata' not described in 'drm_connector' ./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_sink_metadata' not described in 'drm_connector' Also adds some property documentation for HDR Metadata Connector Property in connector property create function. v2: Fixed Sean Paul's review comments. v3: Fixed Daniel Vetter's review comments, added the UAPI structure definition section in kernel docs. v4: Fixed Daniel Vetter's review comments. v5: Added structure member references as per Daniel's suggestion. Cc: Shashank Sharma <shashank.sharma@intel.com> Cc: Ville Syrjä <ville.syrjala@linux.intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <maxime.ripard@bootlin.com> Cc: Sean Paul <sean@poorly.run> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Cc: "Ville Syrjä" <ville.syrjala@linux.intel.com> Cc: Hans Verkuil <hansverk@cisco.com> Cc: dri-devel@lists.freedesktop.org Cc: linux-fbdev@vger.kernel.org Reviewed-by: Sean Paul <sean@poorly.run> (v1) Signed-off-by: Uma Shankar <uma.shankar@intel.com> [danvet: Fix up markup: () for functions, & for structs. Style guide also recommends to prepend struct for structures.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/1559647022-7336-1-git-send-email-uma.shankar@intel.com
2019-06-04 11:17:02 +00:00
* @drm: Dynamic Range and Mastering infoframe
*
* This is used by the generic pack function. This works since all infoframes
* have the same header which also indicates which type of infoframe should be
* packed.
*/
union hdmi_infoframe {
struct hdmi_any_infoframe any;
struct hdmi_avi_infoframe avi;
struct hdmi_spd_infoframe spd;
union hdmi_vendor_any_infoframe vendor;
struct hdmi_audio_infoframe audio;
struct hdmi_drm_infoframe drm;
};
ssize_t hdmi_infoframe_pack(union hdmi_infoframe *frame, void *buffer,
size_t size);
ssize_t hdmi_infoframe_pack_only(const union hdmi_infoframe *frame,
void *buffer, size_t size);
int hdmi_infoframe_unpack(union hdmi_infoframe *frame,
const void *buffer, size_t size);
void hdmi_infoframe_log(const char *level, struct device *dev,
const union hdmi_infoframe *frame);
#endif /* _DRM_HDMI_H */