Questions tagged «compression»

与压缩或解压缩任意数据有关。与压缩单个特定输入相关的挑战应标记为[kolmogorov-complexity]

2
将图像压缩为4 KiB预览
在这个挑战中,您将创建一个图像预览压缩算法。目的是将任意图像文件减少为4 KiB预览图像,该图像可用于快速识别带宽非常小的图像。 您必须编写两个程序(或一个组合程序):压缩程序和解压缩程序。两者都必须将文件或标准输入作为输入,并输出到文件或标准输出。压缩器必须接受选择的主流无损图像格式(例如PNG,BMP,PPM)的一个图像,并输出最多4096字节的文件。解压缩器必须接受压缩器生成的任何文件,并输出与输入尽可能接近的图像。请注意,编码器/解码器没有源代码大小限制,因此您可以发挥算法的创造力。 限制条件: 别作弊'。您的程序可能不会使用隐藏的输入,在Internet上存储数据等。也禁止您包含仅与评分图像集有关的功能/数据。 对于库/工具/内置程序,允许您使用常规图像处理操作(缩放,模糊,色彩空间变换等),但不能使用图像解码/编码/压缩操作(压缩器输入和解压缩器输出除外)。也不允许进行一般的压缩/解压缩。打算针对此挑战实施自己的压缩。 解压缩器输出的图像的尺寸必须与提供给压缩器的原始文件的尺寸完全匹配。您可以假定任一方向的图像尺寸均不超过2 16。 您的压缩器必须在5分钟以内的普通家用PC上运行,而解压缩器必须在10秒以内运行以下集合中的任何映像。 计分 为了帮助快速验证和视觉比较,请在压缩后使用您的答案附上测试语料库的无损相册。 您的压缩器将使用以下图像集进行测试: 您可以在此处以zip文件下载所有图像。 您的分数将是所有图像上压缩器的平均结构相似性指数。我们将使用开源dssim来应对这一挑战。它可以很容易地从源代码构建,或者,如果您在Ubuntu上,它也具有PPA。如果您自己给答案打分,则是首选方法,但是如果您不知道如何构建C应用程序并且不运行Debian / Ubuntu,则可以让其他人为您打分。dssim期望输入/输出为PNG,因此,如果以其他格式输出,请先将输出转换为PNG。 为了使评分更加轻松,这是一个快速帮助Python脚本,用法python score.py corpus_dir compressed_dir: import glob, sys, os, subprocess scores = [] for img in sorted(os.listdir(sys.argv[1])): ref, preview = (os.path.join(sys.argv[i], img) for i in (1, 2)) sys.stdout.write("Comparing {} to {}... ".format(ref, preview)) out = …

11
切哪条线
此任务是关于压缩和处理条件序列。 在“ 保持通话状态且没有人爆炸 ”游戏中,炸弹清除器必须在专家咨询有问题的《炸弹清除手册》的中继下,解除炸弹的武装。该挑战涉及手册第5页上介绍的“关于电线的主题”模块。解吸器带有彩色电线阵列。其中只有一个可以安全切割-其余的则引爆炸弹。 您的代码将根据“电线切割规则”下复制的手册中的说明,根据电线的数量和颜色确定要切割的电线的专家。 输入: 3、4、5或6种线色的有序列表或字符串,由大写字母表示: B: 黑色 U: 蓝色 R:红色 W:白色 Y: 黄色 请注意,蓝色U不是B。 输入还包含一个位(真/假或0/1),用于确定炸弹序列号的最后一位数字是否为奇数,这是某些规则中使用的条件。 您不应将导线数作为单独的输入,而应从列表或颜色字符串中得出。您可能会在列表或字符串的颜色后加上一个终止符,如果您的语言无法说出它的长度。该终止符应为不编码附加信息的固定值。 输出: 1到6的数字,指示要剪断的电线。这可能不是零索引。 线切割规则:这些规则摘自废弃手册的第5页 3 wires: If there are no red wires, cut the second wire. Otherwise, if the last wire is white, cut the last wire. Otherwise, if there is more than …

28
计算超级对数
这应该是一个简单的挑战。 给定一个数字n >= 0,输出的超级对数(或log *,log-star或迭代对数,它们是等效的,因为n对于该挑战永远不会为负。)n。 这是四官能的两个反函数之一。另一个是超级根,这是一个相关的问题。 例子 Input Output 0 0 1 0 2 1 3 2 4 2 ... 15 2 16 3 ... 3814279 3 3814280 4 规则 您可能不需要支持小数。 您需要至少支持输入3814280 = ceiling(e^e^e)。 您可能不对值进行硬编码3814280。(理论上,您的程序必须支持更高的数字。)我希望实现一种算法。 最短的代码胜出。 相关OEIS
29 code-golf  math  code-golf  array-manipulation  sorting  code-golf  math  arithmetic  matrix  code-golf  string  kolmogorov-complexity  code-golf  string  code-golf  math  sequence  arithmetic  recursion  code-golf  math  ascii-art  sequence  code-golf  math  array-manipulation  code-golf  code-golf  kolmogorov-complexity  code-golf  string  code-golf  string  decision-problem  code-golf  array-manipulation  tips  javascript  json  code-golf  math  string  number  number-theory  code-golf  math  sequence  fibonacci  number  arithmetic  fastest-code  integer  code-golf  math  sequence  code-golf  string  file-system  tips  golfscript  code-golf  string  code-golf  string  natural-language  code-golf  string  file-system  code-golf  math  array-manipulation  code-challenge  image-processing  compression  code-golf  math  number  sequence  code-golf  math  combinatorics  regular-expression  code-golf  sequence  pi  code-golf  ascii-art  code-golf  string  array-manipulation  sorting  code-golf  string  graph-theory  code-golf  string  code-golf  string  ascii-art  code-challenge  compression  code-golf  code-golf  math  sequence  number-theory  code-golf  maze  graph-theory  code-golf  math  sequence 

8
管上某处……但在哪条线上?
在伦敦地铁又名地铁是世界上最古老的地下铁路,它目前由11行(因为“Edgware路”和“哈默”各占据两个位置严格269 **站)* 267个服务站命名 挑战 输出以名称为输入的服务站的线路名称。 输入: 字符串或字符列表 可以假定这是一个有效的站名(如下面的代码块中所列)。 您可以假设&输入中的任何内容将始终是单词and(或And),如果您愿意,只需在答案中清楚说明即可。 输出: 单独的输出列出了服务该站的十一条线路的输出: 字符串列表,字符列表,打印文本,字符串,字符列表;如果有疑问请问。 如果愿意,您可以始终输出单词and(或And)代替任何单词&,只需在答案中清楚说明。 需要注意的是,如果打印或返回一个字符串或字符列表,则在任何行名(包括the &或andor Andused)中都不存在使用的分隔符-子字符串-因此,这排除了使用单个空格字符作为分隔符。 试管网络: -注意:这是最终状态,即使它碰巧包含拼写错误(除非在回答前得到解决) Input (Station Name) : Output (list of tube line names) ---------------------------------------------------------------------------------------------------------------- "Acton Town" : ["District","Piccadilly"] "Aldgate" : ["Circle","Metropolitan"] "Aldgate East" : ["District","Hammersmith & City"] "Alperton" : ["Piccadilly"] "Amersham" : ["Metropolitan"] "Angel" : …

21
转换“ 0xUsernames”
0x用户名 有太多人在使用消息传递服务,以至于他们用光了存储所有用户名的空间!为了解决这个问题,他们将在可能的情况下开始以十六进制存储用户名。 如果用户名仅包含字符0123456789ABCDEF(不区分大小写),则可以将其转换为十六进制并存储为整数。例如,用户名ba5eba11可以解释为0xBA5EBA11十六进制整数。 但是呢05AB1E?那是一个前导零,它将丢失。因此,无论何时转换用户名,都必须1在将其读取为整数之前确保在前面加上a 。 挑战 您的任务是编写一个给定非空用户名作为字符串的程序或函数,以“六压缩”用户名: 如果可以将其解释为十六进制整数,则将1解释为十六进制,然后将结果打印为以10为基数。 否则,只需返回未修改的字符串即可。 这是代码高尔夫球,因此最短的解决方案(以字节为单位)获胜!允许内置的基本转换功能。 测试用例 您可以假设任何所得的整数都在您语言的标准整数范围内。 与大多数邮件系统中的用户名一样,输入字符串将仅包含字母数字和下划线。 请记住,您始终需要1在转换前添加前导! "ba5eba11" -> 7421737489 "05AB1E" -> 17148702 "dec0de" -> 31375582 "Beef" -> 114415 "da7aba5e" -> 7960443486 "500" -> 5376 "DENNIS" -> "DENNIS" "Garth" -> "Garth" "A_B_C" -> "A_B_C" "0x000" -> "0x000" 作为参考,这是我用于测试用例(无溶剂)的Python 3实现: import re def convert_name(name): …

6
大数字
在尝试解答我的几个答案时,我需要用尽可能少的字符编写大整数。 现在,我知道执行此操作的最佳方法:我会让您编写此程序。 挑战 编写一个程序,当给定一个正整数时,输出一个程序,将其打印到stdout或等效程序。 输出程序不必使用与创建者相同的语言。 输出最多为128个字节。 您可以接受来自stdin或等效输入的输入(不是功能输入) 您可以将结果程序输出到stdout或等效程序。 输出的数字必须为十进制(以10为底) 计分 您的分数等于程序无法编码的最小正整数。 得分最高的条目将获胜。

15
半回文之谜
回文是一个本身相反的词。 现在有些单词看起来像回文,但看起来却不然。例如,考虑单词 sheesh, sheesh不是回文,因为它的反向是hseehs不同的,但是如果我们认为sh是单个字母,那么它的反向是sheesh。我们将这种词称为半回文。 具体来说,如果我们可以将单词拆分成一定数量的块,则该单词为半回文,这样当块的顺序颠倒时,便形成了原始单词。(因为sheesh这些块是sh e e sh),我们也将不要求任何块包含两个单词的字母(否则每个单词都是半回文)。例如rear,不是半回文,因为它r ea r具有一个块(ea),其中包含来自原始单词两边的字母。我们认为奇数长度的单词的中心字符不在单词的两侧,因此对于奇数长度的单词,中心字符必须始终位于其自己的块中。 您的任务是获取正整数列表,并确定它们是否为半回文。您的代码应输出两个一致的不相等值,如果输入是半回文,则应输出一个,否则将输出另一个。但是,代码的字节序列本身必须是半回文。 答案将以字节计分,而字节数越少越好。 测试用例 [] -> True [1] -> True [2,1,2] -> True [3,4,2,2,3,4] -> True [3,5,1,3,5] -> True [1,2,3,1] -> False [1,2,3,3,4,1] -> False [11,44,1,1] -> False [1,3,2,4,1,2,3] -> False 程序生成更多的测试用例。 borrible指出,这些与广义Smarandache回文相似。因此,如果您想做进一步的阅读,那是一个开始的地方。

10
压缩原子电离能
这是另一种类型的压缩挑战。在正常的kolmogorov复杂性挑战中,您需要精确地重新创建列表。在这里,您可以按任何希望的方式舍入值。有什么收获?您的分数将根据输出的错误程度而受到处罚。 这个问题的底部是前108个元素的第一电离能的列表。您的程序在执行后应输出此列表的相当准确的副本。将没有输入或参数。出于评分目的,您的输出应该是确定性的(每次输出相同)。 输出格式 您的程序/函数必须输出108个数字的列表,并按原子序数递增的顺序排序。该列表可以采用任何适当的格式。下面的源数据以正确的顺序提供,从氢到has。 计分 您的分数将是您程序的长度(以字节为单位)加上一个四舍五入的罚款。 为每个元素计算一个舍入罚款,并将其相加得出总罚款。 举个例子,我们以数字为准11.81381。假设您的程序输出的值不正确11.81299999。 首先,两个数字都乘以相同的10的幂,以使真实值中不再有小数点:1181381, 1181299.999。真实值中的结尾零被认为是重要的。 然后,采用绝对差确定绝对误差:81.001。 最后,我们将该元素的惩罚计算为max(0, log10(err * 4 - 1)) -> 2.50921。选择该公式时,误差<0.5不会造成任何惩罚(因为四舍五入后的答案是正确的),同时还可以使该数字四舍五入到任何特定的小数位将带来净收益(渐近)的可能性为50%渐近其他压缩)。 这是罚款计算程序的在线试用实现。该程序的输入以数字列表的形式提供,每行一个。该程序的输出是总罚分和每个元素的得分明细。 数据 以下数字列表是目标数据,从原子序数1到108的正确顺序。 资源 13.598434005136 24.587387936 5.391714761 9.322699 8.2980190 11.260296 14.53413 13.618054 17.42282 21.564540 5.1390767 7.646235 5.985768 8.151683 10.486686 10.36001 12.96763 15.7596112 4.34066354 6.11315520 6.56149 6.82812 6.746187 6.76651 7.434018 7.9024678 7.88101 …

3
高尔夫球弦
对于总是需要字符串压缩的kolmogorov-complexity挑战,我始终未能给出答案,主要原因是我不知道我应该如何有效地使用字符串压缩工具。 因此,我已经发布了这个问题。与我的其他提示问题不同,这不是特定于语言的意思,也就是说,如果您可以用自己的语言想到任何提示,则可以将其发布(前提是您指定了语言)。一般提示也将不胜感激。 那么,如何使用字符串压缩工具发挥最大作用?

2
有损ASCII艺术压缩
背景 PICASCII是一种灵巧的工具,可将图像转换为ASCII艺术作品。 通过使用以下十个ASCII字符,可以实现不同程度的亮度: @#+';:,.` 我们将说这些像素(字符元素)的亮度从1(符号)到10(空格)。 在下面,您可以看到以正确的字体显示的一些代码转换,威尔士旗帜,分形,大鳟鱼和高尔夫球的结果: 您可以看到此小提琴中的图像,然后从Google云端硬盘下载它们。 任务 尽管PICASCII的最终结果在视觉上令人愉悦,但所有五个图像的总重为153,559字节。如果我们愿意牺牲部分图像质量,这些图像将被压缩多少? 您的任务是编写一个程序,该程序接受上述格式的ASCII艺术图像并以最低质量作为输入,并以完整程序或返回单个字符串的函数的形式打印图像的有损压缩,该压缩应满足以下要求:质量要求。 这意味着您不必编写单独的解压缩器;它必须内置在每个压缩图像中。 原始图像将由亮度介于1到10之间的像素像素组成,并通过换行分隔成相同长度的行。压缩的图像必须具有相同的尺寸并使用相同的字符集。 对于包含n个像素的未压缩图像,图像的压缩版本的质量定义为 其中Ç 我是的亮度我个和压缩后的图像的输出的charxel ü 我的亮度我个未压缩图像的charxel。 计分 您的代码将以上方的五个图像作为输入,每个图像的最低质量设置分别为0.50、0.60、0.70、0.80和0.90。 您的分数是所有压缩图像大小的几何平均值,即所有25个压缩图像的长度乘积的第二十五根。 最低分获胜! 附加规则 您的代码必须适用于任意图像,而不仅仅是用于评​​分的图像。 期望您针对测试用例优化代码,但是什至不尝试压缩任意图像的程序也不会被我接受。 您的压缩器可能使用内置的字节流压缩器(例如gzip),但是您必须自己为压缩图像实现它们。 允许在字节流解压缩器中正常使用的Bulit-ins(例如,基本转换,行程解码)。 压缩器和压缩图像不必使用相同的语言。 但是,您必须为所有压缩图像选择一种语言。 对于每个压缩图像,均适用标准代码高尔夫规则。 验证 我制作了一个CJam脚本,可以轻松地验证所有质量要求并计算提交的分数。 您可以从此处或此处下载Java解释器。 e# URLs of the uncompressed images. e# "%s" will get replaced by 1, 2, 3, 4, 5. "file:///home/dennis/codegolf/53199/original/image%s.txt" …

14
这是一个截断的三角形数字吗?
相关OEIS序列:A008867 截断三角数 三角数的一个共同属性是它们可以排列成三角形。例如,取21并排列成os 的三角形: Ø OO oo oo oo oo 让我们定义一个“截断:”从每个角切割相同大小的三角形。截断21的一种方法如下: 。 。。 oo oo 。oo。 。。哦。。 (的三角形.是从原始三角形切出的)。 o剩下12 秒,因此12是一个截断的三角形数字。 任务 您的工作是编写一个程序或函数(或等效函数),该程序或函数采用整数并返回(或使用任何标准输出方法)数字是否为截断的三角形数字。 规则 没有标准漏洞。 输入是非负整数。 切口的边长不能超过原始三角形的一半(即,切口不能重叠) 切口的边长可以为零。 测试用例 真相: 0 1 3 6 7 10 12 15 18 19 虚假: 2 4 5 8 9 11 13 14 16 17 …
20 code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

1
差异压缩[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 2年前关闭。 对于此挑战,您需要压缩差异。 diff是一些数据,表示两个字符串之间的差异。 面对这一挑战,您需要提供一个或多个程序,这些程序可以: 输入A和B,并输出差异,C 输入A和C,并输出B 输入B和C,并输出A 目标是使diff C尽可能小。 差异可以是任何东西:字符串,数字,数据块。我们只关心大小(字节数)。 我有50个可以在Github上找到的测试用例。每个测试用例包含两个以空格分隔的URL,这些URL指向您需要比较的2个文件。(这些测试用例源自PPCG成员的Github个人资料。谢谢!) 上面的所有三个任务应该在一分钟内才能在具有适当功能的计算机上运行(针对每个测试用例)。 您的分数等于所有50个差异的总大小(以字节为单位),越低越好。不允许在程序中进行硬编码差异(我保留更改测试用例的权利,以防止硬编码)。diffutils不允许产生差异的内建函式(例如)。

7
移至可打印的ASCII前端
背景 所述移动至前的变换(MTF)是一种数据编码算法旨在提高熵编码技术的性能。 在bzip2压缩算法中,它是在Burrows-Wheeler变换(如Burrows,Wheeler和Back所示)之后应用的,目的是将重复的字符组转换为小的,易于压缩的非负整数。 定义 为了解决这一挑战,我们将定义MTF的可打印ASCII版本,如下所示: 给定输入字符串s,取空数组r,所有可打印ASCII字符(0x20至0x7E)的字符串d,并对s的每个字符c重复以下操作: 追加的索引Ç在d到ř。 将c移到d的前面,即,从d移走c并将它放在其余的前面。 最后,我们将r的元素作为原始 d中的索引,并获取相应的字符。 分步示例 INPUT: "CODEGOLF" 0. s = "CODEGOLF" d = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" r = [] 1. s = "ODEGOLF" d = "C !\"#$%&'()*+,-./0123456789:;<=>?@ABDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" r = [35] 2. s = "DEGOLF" d = "OC !\"#$%&'()*+,-./0123456789:;<=>?@ABDEFGHIJKLMNPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" r = [35 47] 3. s = …

12
您所有的基地97都属于我们
许多编程语言都是使用可单独打印的ASCII,制表符和换行符编写的。然后将这97个字符存储在8位字节中(实际上能够容纳256个不同的字符!),这效率非常低-尤其是在代码高尔夫球中,每个字节都很重要!在这一挑战中,您将可以通过使用基本转化来降低得分。 挑战 您的程序/函数将字符串或字符数组作为输入,然后将其解释为以97为基数的数字。然后,它将其转换为以256为 基数的数字,并对表示该数字所需的符号(即字节)数进行计数。该计数将是您的程序/功能的输出/返回值。 一个使用base-2和base-10(二进制和十进制)的简单示例:如果输入为10110,则输出将为2,因为10110 2 = 22 10(表示输出必须用两位数字表示)。类似地,1101 2变为13 10,也给出2的输出,而110 2变成6 10,所以输出为1。 输入字符串可以包含所有95个可打印的ASCII字符,以及换行符\n和文字选项卡\t,这 将为基础转换创建97个符号的源字母。确切的字母表因此将(取代\t和\n与实际文字标签和换行;音符换行以下字面空间): \t\n !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 请注意,该字母的顺序很重要:例如,base-97 \t对应于decimal 0,并且!对应于decimal 3。 一些测试用例:(您不需要处理空字符串) Input Output 'example@domain.com' 15 'All your base are belong to us!' 26 ' abcd' 9 '~ abcd' 10 'ABCDEFGHIJK' 9 'zyxwvutsrpq' 10 '{".~"}.~' 7 '\t\t\t\t\t\t\t\t' 1 (with \t …

15
g o l f a t 2
有时将笛卡尔坐标转换(x,y)为极坐标确实很费力(r,phi)。虽然你可以计算r = sqrt(x^2+y^2)很容易,你经常计算时的角度需要的情况下有些区别phi,因为arcsin,arccos以及arctan和所有其他三角函数有一个共同域,每个只有跨越半个圆。 在许多语言中,都有用于将直角坐标转换为极坐标的内置atan2函数,或者至少具有给定的(x,y)计算角度的函数phi。 任务 你的任务是写一个程序/功能采用两个(浮点,但不能同时为零)笛卡尔坐标(x,y),并输出对应的极角phi,其中phi必须处于度,弧度或等级(与等级余平均gradians其是1 /整圆的400),以您较方便的为准。 角度是在正方向上测量的,对于,我们有零角度(1,0)。 细节 您不得使用内置插件是计算角度phi给出两个坐标,其中包括atan2,rect2polar,argOfComplexNumber和类似的功能。但是,您可以使用通常的三角函数及其反函数,它们只需一个参数。任何单位符号都是可选的。 半径r必须为非负数,并且phi必须在范围内[-360°, 360°](无论输出270°还是,都无关紧要-90°)。 例子 Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) 308.66°
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.