Entrée Code Code source


70

Intro

Le défi consiste à créer un programme / fonction qui imprime l'intersection de son propre code source et d'une entrée de chaîne donnée. C'est du code golf et pour être plus précis:

  • Soit Ile jeu d'entrées
    • {"a","b","c"}
  • Soit Sle jeu de code source
    • {"b","f"}
  • Ensuite, l'intersection est ce qu'ils partagent
    • I ∩ S = {"b"}

Contribution

L'entrée est flexible. Il devrait être capable de gérer le codage de caractères utilisé pour le code source.

Sortie

La sortie est flexible. Il devrait s'agir du jeu de caractères partagé par le code source et le code source. En outre, les ensembles sont des collections non ordonnées d'objets distincts. En résumé:

  • La sortie est flexible:
    • Peut-être n'importe quelle structure de données (chaîne ou autre)
    • Pourrait non ordonné
    • Pourrait avoir une fuite \n
    • Devrait être distinct

Restriction

Comme pour les défis, le programme / fonction peut ne pas lire son propre code source et les solutions à 0 octet ne sont pas autorisées.

Exemples

  • #1
functor x(I){ return I ∩ self; }

Inputs                                Outputs
------                                -------
enter preformatted text here      ->  {"e","n","t","r","f","o","x"}

["Albrt"," Einstin"]              ->  {"l","r","t","n","s"}
  • # 2
(_)->_&"(_)->&\"\\"

Inputs                                Outputs
------                                -------
"Security at the expense of       ->  "
usability comes at the expense 
of security."

(0____0)                          ->  (_)
  • # 3
ಠa益длф


Inputs                                Outputs
------                                -------
Far out in the uncharted backwaters ->"a"    
of the unfashionable end of the 
Western Spiral arm of the Galaxy lies 
a small unregarded yellow sun. 
Orbiting this at a distance of roughly 
ninety-eight million miles is an 
utterly insignificant little blue-green 
planet whose ape-descended life forms 
are so amazingly primitive that they 
still think digital watches are a pretty 
neat idea.

(ノಠ益ಠ)ノ彡┻━┻                      ->"ಠ益"

Cas de test

Albert Einstein

\__( O__O)_/

!@#$%^&*()_+{}|:"<>?

1234567890-=[]\;',./

(ノಠ益ಠ)ノ彡┻━┻

“¤>%,oỊȤʠ“ØụĊ5D³ṃṠɼQ»j;Ç;“;}¶”

┬──┬ ノ( ゜-゜ノ)

Far out in the uncharted backwaters of the unfashionable end of the Western Spiral arm of the Galaxy lies a small unregarded yellow sun. Orbiting this at a distance of roughly ninety-eight million miles is an utterly insignificant little blue-green planet whose ape-descended life forms are so amazingly primitive that they still think digital watches are a pretty neat idea.

Mise à jour

  • [16-08-10]: les ensembles sont des collections non ordonnées d'objets distincts
  • [16-08-10]: Le retour à la ligne est acceptable

2
La sortie peut-elle contenir des caractères en double?
Digital Trauma

1
@DigitalTrauma D'après les exemples n ° 1, n ° 2 et n ° 3, il semble que non
Luis Mendo

@DigitalTrauma Désolé pour l'ambiguïté, les ensembles (au sens mathématique) ignorent l'ordre et n'ont aucune répétition.
NonlinearFruit

22
Félicitations pour avoir conçu un quine généralisé où les meilleures solutions ne sont pas basées sur le quine standard du langage. :)
Martin Ender

1
Si un ensemble ne doit pas avoir de répétition, les ensembles d'entrée ne doivent-ils pas non plus contenir de répétition? Ou bien l'entrée n'est-elle pas un ensemble?
user81655

Réponses:


24

Gelée , 10 à 6 octets

“Ṿf”Ṿf

Essayez-le en ligne!

Comment ça fonctionne

“Ṿf”Ṿf  Main link. Argument: s (string)

“Ṿf”    Set the return value to 'Ṿf'.
    Ṿ   Uneval; yield '“Ṿf”'.
     f  Filter; remove the characters from '“Ṿf”' that do not appear in s.

15

Python 3, 44 octets

Merci Karl de m'avoir sauvé un octet :-) Merci Dada de m'avoir sauvé deux octets!

Je pense que cela fonctionne, mais c'est mon premier défi de quine donc je ne suis pas sûr à 100%. : \

print(set("printseu()&'"+'+"')&set(input()))

Version Lambda avec 43 octets: lambda a:set(" lambdaset()&'"+':+"')&set(a)


8
'eroticpuns\()&\''est plus courte que l'ajout des chaînes. (échappé 'mais vous avez besoin d'un `\` supplémentaire) Pourquoi le point est-il là?
KarlKastor

woops, .c’était une relique de code moins golfé. L'utilisation de la barre oblique inversée ne fonctionne pas car la sortie de \` is \\ `, et dupliquer le caractère saisi n'est pas autorisée, je pense.
Jeremy

1
Votre lambda manque le :.
Dennis

Merci @Dennis. Mes yeux se voilent après avoir essayé de trouver tous les personnages du programme;)
Jeremy

1
@Dada: Si vous préférez, il pourrait être inspectour, nicestupor, poeticurns, nopictures, recountspiou inputscore. Ou pour le nouveau que vous pourriez utiliser prunesit(une description précise de ce que font les golfeurs!) ipunster, Ou nursepitentre autres.
Deusovi

11

Dyalog APL , 8 octets

'∩''⊢'∩⊢

Ceci retourne les caractères de l'argument de gauche présents dans l'argument de droite (si l' argument de gauche n'a pas de doublons, comme dans ce cas, le résultat n'a également pas de doublons.

est l'argument

Ensuite, la chaîne ne contient que ces deux caractères et le caractère de citation (doublé, comme dans une chaîne).

TryAPL en ligne!


10

GolfScript, 6 octets

"`&"`&

Essayez-le en ligne!

Comment ça fonctionne

        # (implicit) Push the input on the stack.
"`&"    # Push the string '`&' on the stack.
   `    # Inspect; turn the string into '"`&"'.
     &  # Perform set intersection.

9

Python 2, 56 46 39 octets

-1 octet grâce à @Jeremy

lambda a:set(':&()smelt\ bad\'')&set(a)

fonction lambda anonyme, prend une chaîne, retourne un ensemble

ancienne version:

lambda x,w=set('newmatrixbuspdl_:-)(=,\ \''):w-(w-set(x))

J'aime ça, mais il retourne deux barres obliques inverses sur `\\` au lieu d'un seul.
Jeremy

Aussi, je pense que vous pouvez économiser un octet en changeant le nom de la lambda ena
Jeremy

1
@Jeremy Merci pour le conseil, '\\'Python représente simplement une barre oblique inversée sous forme de chaîne, car un seul échappe à la citation de fin. Vous devez donc échapper à la barre oblique inverse avec une barre oblique inversée pour que cela fonctionne. Tapez print '\\'et vous verrez que ce n'est que la représentation d'une barre oblique inverse.
KarlKastor

Vous pouvez arriver à 36 avec lambda a:{*''' lambda&':{}*'''}&{*a}.
Morgan Thrapp

1
@MorganThrapp 35lambda a:{*' lambda&\\\':{}*'}&{*a}
seequ

9

Perl 6 , 56, 55 octets

Version " française " / Unicode (55 octets)

say perl q.say perlq$*IN\\\.comb:..comb$*IN.comb:

" Texas " / versions ASCII (56 octets)

say (q.sayq(&) $*IN\\\.combperl..comb (&)$*IN.comb).perl
say perl q.sayq(&) $*IN\\\.comb:perl..comb (&)$*IN.comb:

Non-golfé:

my \Source = 'my \\Source = \'say ( $*IN.comb.Set ∩ Source.comb.Set ).perl\'';
say ( $*IN.comb.Set  Source.comb.Set ).perl

Exemples:

$ echo -n 'say perl q.say perlq∩$*IN\\\.comb:..comb∩$*IN.comb:' > test-unicode.p6

$ echo -n 'say (q.sayq(&) $*IN\\\.combperl..comb (&)$*IN.comb).perl' > test-ascii.p6

$ perl6 test-ascii.p6 <<< 'abcdefghijklmnopqrstuvwxyz'
set("p","a","l","r","c","q","b","s","e","m","y","o")

$ perl6 test-unicode.p6 < test-unicode.p6
set("\\","I","p"," ","a","c","l","r","q","b","∩","*","s","m","e",".","y",":","o","N","\$")

$ perl6 test-ascii.p6 < test-ascii.p6
set("p","\\","I"," ","a","l","r","c","q","b",")","*","s","e","m","\&",".","(","y","o","N","\$")

$ perl6 test-ascii.p6 < test-unicode.p6
set("p","\\","I"," ","a","l","r","c","q","b","*","s","e","m",".","y","o","N","\$")

$ perl6 test-unicode.p6 <<< 'Albert Einstein'
set(" ","l","r","b","s","e")

$ perl6 test-unicode.p6 <<< '\__( O__O)_/'
set("\\"," ")

$ perl6 test-ascii.p6 <<< '!@#$%^&*()_+{}|:"<>?'
set(")","*","\&","(","\$")

$ perl6 test-unicode.p6 <<< "1234567890-=[]\\;',./"
set("\\",".")

$ perl6 test-unicode.p6 <<< '(ノಠ益ಠ)ノ彡┻━┻'
set()

“¤>%,oỊȤʠ“ØụĊ5D³ṃṠɼQ»j;Ç;“;}¶”
set("o")

$ perl6 test-unicode.p6 <<< '┬──┬ ノ( ゜-゜ノ)'
set(" ")


$ perl6 test-ascii.p6 <<< 'Far out in the uncharted backwaters of the unfashionable end of the Western Spiral arm of the Galaxy lies a small unregarded yellow sun. Orbiting this at a distance of roughly ninety-eight million miles is an utterly insignificant little blue-green planet whose ape-descended life forms are so amazingly primitive that they still think digital watches are a pretty neat idea.'
set("p"," ","a","l","r","c","b","s","e","m",".","y","o")

2
N'accède pas $*PROGRAMau code source du programme et viole donc les règles?
celtschk

@celtschk J'aurais dû relire la question avant de poster, corrigé. (Techniquement, le compilateur peut voir ce qui $*PROGRAMest lu et stocker l'intégralité du source en tant que chaîne dans le programme compilé, ce qui l'aurait placé dans une zone grise)
Brad Gilbert b2gills

8

MATL , 8 octets

'X&'''X&

Essayez-le en ligne!

L'entrée est une chaîne entre guillemets simples. Si la chaîne contient un symbole entre guillemets, vous devez le dupliquer pour l'échapper.

Explication

'X&'''   % Push string with the three characters used by the program. The single-quote 
         % symbol needs to be escaped by duplicating it
X&       % Take input implicitly. Set intersection. Display implicitly

6

En fait, 6 octets

`∩è`è∩

Essayez-le en ligne!

Explication:

`∩è`è∩
`∩è`    push the function `∩è` (which contains every character in the source code except '`')
    è   repr (same as Python repr - leaves "`∩è`", which contains every character in the source code)
      ∩ set intersection with input

5

Haskell (30 octets)

C'est une solution tellement ennuyeuse ... Mais je ne pourrais pas faire mieux. :(

filter(`elem`"f(term)\"i`l\\")

5

Brachylog , 23 octets

:{e.~e":{}e~\"fd\."}fd.

Essayez-le en ligne!

Explication

:{                 }f      Find all chars that verify the predicate below
                     d.    Remove duplicates and output

  e.                       Take a char from the input ; this is our output…
    ~e":{}e~\"fd\."        … if that char is in the string :{}e~"fd. (the first \ is here
                               to escape the ")

1
Pouvez-vous jeter un oeil à notre salle de discussion?
Leaky Nun

1
+1 pour homme moustache :{et homme moustache surpris:{}
Citron destructible


4

C, 142 octets

main(i){char*p,a[]="remain([*]){fought?>:01;,\\\"=capsv+-l}";for(;(i=getchar())>=0;p?putchar(i),memmove(p,p+1,a+strlen(a)-p):0)p=strchr(a,i);}

Essayez sur ideone .


2
Une version non golfée et / ou une explication serait géniale!
YSC

Vous auriez pu utiliser à la sizeof aplace de strlen(a)pour un octet enregistré, mais il est préférable de donner à la matrice une taille connue:, a[99]="..."et de la remplacer strlen(a)par 99une réduction de 5 octets.
G. Sliepen

Vous pouvez enregistrer 3 ou 4 octets supplémentaires en remplaçant (i=getchar())>=0par read(0,&i,1). Cela fonctionne sur des machines little-endian. iest initialisé à 1 si vous n'exécutez pas le programme avec des arguments. Si vous voulez que cela fonctionne également sur les machines big-endian, supprimez i de la liste d'arguments de main()et déclarez-le à l'intérieur du corps en tant que caractère (mais vous ne sauvegardez alors que 3 octets). read()renvoie commodément 0 sur EOF.
G. Sliepen

4

CJam, 8 octets

"`q&"`q&

Essayez ici.

Explication:

"`q&"    e# Push that string to the stack
     `   e# Stringify, pops the string and pushes "\"`r&\"" to the stack
      q  e# Pushes the input to the stack
       & e# Union, pops two elements and pushes a list of every element that is contained in both.

4

Pyth , 9 à 8 octets

1 octet grâce à Sp3000

@Q"\Q@\"

Essayez-le en ligne!

@Q"\Q@\"
@Q"\Q@\""   implicit string ending

@Q           intersect the input with
  "\Q@\""   the string containing '\', 'Q', '@', '"'.

@z"z\"@est 1 octet plus court.
drobilc

@drobilc Cela manquerait le \.
Leaky Nun

Oh, oui, j'ai complètement oublié ça.
drobilc

4

Retina, 21 à 20 octets

Supprime les caractères ne figurant pas dans le code source, puis supprime les caractères en double.

[^Ds.n\n[-a_-]

Ds`.

Essayez-le en ligne


Votre code source contient un saut de ligne (votre sortie n'en contient pas).
Martin Ender

J'avais fondamentalement la même solution plus tôt mais j'ai oublié de la poster. Vous pouvez enregistrer quelques octets avec la plage [-a(puis inclure un trait de soulignement et un trait d'union et déposer le backtick sur la deuxième ligne). Mais pour référence future, vous ]n’auriez pas besoin de vous échapper si vous le mettez comme premier caractère. Oh, et pour votre gentillesse, vous pouvez échanger les deux étapes pour éviter le saut de ligne suivant.
Martin Ender

@MartinEnder Cela ne déduit toujours pas les sauts de ligne, est-ce un problème?
mbomb007

Oh tu as raison, je n'ai pas remarqué ça. Vous devrez alors ajouter saux options de Det à la classe de personnage.
Martin Ender

4

Mathematica, 35 octets

Characters@"\"#&@C\acehrst⋂"⋂#&

Fonction anonyme. Ignorer les messages générés. Prend une liste de caractères en entrée et retourne une liste de caractères en sortie. Le caractère Unicode est U + 22C2 pour \[Intersection].



4

Vim, 78 68 78 79 61

Complètement changé mon approche:

oo/\$kjxd<esc>/o<cr>xj$/\/<cr>xj$/\\<cr>xj$/$<cr>xj$/k<cr>xj$/x<cr>xj$/j<cr>xj$/d<cr>xkdd

Comment ça fonctionne:

Tout d'abord, il crée une ligne avec tous les caractères du programme, puis il recherche la première instance de chacun des caractères du programme, qui se trouve soit dans l'entrée, si l'entrée et la sortie se croisent, soit dans la sortie si elles ne le font pas. it, se déplace vers le dernier caractère du fichier (pour qu'il se termine) et le fait pour chaque caractère unique dans la source, sauf d, où au lieu de passer à la fin du fichier, il termine en supprimant l'entrée


La barre oblique inverse est dans votre code mais ne semble pas être dans votre chaîne.
Titus

N'est-ce pas la troisième?
Citron destructible

4

Bash , 45 50 41 39 37 34 29 octets

-9 octets grâce à Geoff Reedy
-4 octets grâce à Dennis
-5 octets grâce à Nahuel Fouilleul

grep -o '[] [|\'\'grepouniq-]

Essayez-le en ligne!


N'avez-vous pas besoin d'une seule commande grep?
Geoff Reedy

@GeoffReedy La première commande grep divise l'entrée en un caractère par ligne.
Dennis

Bien, mais ne pourrait pas être mis sur le deuxième grep
Geoff Reedy

Vous avez raison, et cela évite d'avoir à vérifier le '.'. Merci!
Riley

1
@ Titus Après que BASH ait fait son travail, grep obtient -oet [] [|\'grepouniq-]. Il est donc à la recherche de quoi que ce soit de ces derniers : [ ] {space} [ | {slash} ' g r e p o u n i q - ].
Riley

3

PowerShell v4 +, 122 104 octets

([char[]]($args[0]+'acegfhmnoprstu012|][()"?+_,.$-{0}{1}{2}'-f("'","}","{"))|group|?{$_.count-gt1}).name

Pouah. Quines ou un code de type quine dans PowerShell est nul, car le formatage de remplacement de chaîne est trop maladroit.

La chaîne ace...{2}au milieu représente chaque caractère présent dans le reste du code. Le {0}{1}{2}est utilisé conjointement avec l' -fopérateur ormat pour extraire les '{}caractères dans la chaîne.

Cela est combiné en tant que tableau de caractères avec l'entrée $args, puis introduit dans le pipeline. Le premier arrêt est celui Group-Objectqui crée (essentiellement) une table de hachage des objets d'entrée et le nombre de fois où ils se produisent dans l'entrée. Cela est dirigé vers |?{...}le Where-Objectpour ne sélectionner que les articles qui ont un .countplus grand que 1. Nous encapsulons cela par parens et nous extrayons la .Namepartie de la table de hachage (qui est celle où intervient l'exigence de la v4 +, sinon nous aurions besoin d'une |Select Nameétape supplémentaire .

Ces éléments sont laissés sur le pipeline (sous forme de tableau) et l'impression est implicite.


3

Python 2, 44 octets

x='c=set;print c(`x`)&c(raw_input())';exec x

Juste pour le plaisir, voici une soumission de programme complète de type quine. Sort la représentation sous forme de chaîne d'un ensemble Python 2.


3

JavaScript (ES6), 59 57 octets

f=
t=>[..."\"().=>O[\\]defilnrtx~"].filter(e=>~t.indexOf(e))
;
<input placeholder=Input oninput=o.value=f(this.value).join``><input placeholder=Output id=o>

Renvoie un tableau de caractères présents à la fois dans le tableau de chaînes / caractères d'origine et dans le code source. Edit: 2 octets sauvegardés grâce à @ user81655.


f=s=>[...new Set(f+'')]...pourrait économiser des octets.
user81655

Ou même plus court:f=s=>[...s].filter(c=>(new Set(f+'')).has(c))
user81655

@ user81655 Au moins dans Firefox, f+''fonctionne en lisant fle code source. (Dans certains cas, vous pourriez faire planter Firefox en modifiant le fichier source puis en essayant de hiérarchiser une fonction chargée à partir de celui-ci.)
Neil

@ user81655 Votre deuxième exemple échoue lorsqu'il scontient des éléments répétés et qu'il indexOfest plus court que de new Settoute façon.
Neil

Dans ce cas, vous pouvez essayer de sauvegarder des caractères (comme changer le cparamètre en un caractère déjà présent dans la liste).
user81655

3

Matlab, 37 octets

Assez facile:

Utilise la fonction intégrée intersectpour trouver l'intersection. Le code source est codé en dur. Les entrées doivent être placées entre guillemets''

intersect(input(''),'''intersc(pu),')

Vous auriez dû utiliser une fonction anonyme ... vous battre de 5 octets
Sanchises

Hehe, je suppose que ce n'était pas mon meilleur golf ...
Stewie Griffin

3

JavaScript (Chrome 58 sur OS X 10), 12654 12426 11992 octets

https://paste.ubuntu.com/25593218/

https://paste.ubuntu.com/25595798/

https://paste.ubuntu.com/25595831/

Le code d'origine:

var t=prompt();"!+()[]".split("").forEach(function(f){if(t.includes(f))alert(f)})

Cela a ensuite été converti en un style de programmation appelé jsfk qui utilise uniquement ces six caractères:

(+)[!] 

en utilisant un compilateur en ligne.


Si jsfk est la langue, vous devriez l’utiliser dans l’en-tête au lieu de Javascript.
NonlinearFruit

1
@NonlinearFruit jsfk est un style de programmation . Il est valide javascript
Tornado547

2

R, 129 octets

f=function(s){b=strsplit("f=unctio(s){arpl;,[1]b\\\"qemh0T}",c())[[1]];cat(b[unique(pmatch(strsplit(s,c())[[1]],b,0,T))],sep="")}

Si je le pratique, il faut que des choses étranges soient modifiées comme une nouvelle ligne dans la chaîne b. Quoi qu'il en soit, sa super simple - construit un vecteur avec tous les caractères de la fonction. Il extrait ensuite l’entrée dans un vecteur et vérifie l’appartenance.


vous n'avez pas visité le site depuis presque un an, mais f=function(s)cat(instersect(strsplit(s,"")[[1]],strsplit("f=unctio(s)aerpl,\\\"[1]","")[[1]]),sep="")101 octets, et je pense que le format d'E / S peut être plus simple, sans cat...
Giuseppe

2

Ruby, 34 + ndrapeau = 35 octets

Ne fonctionne pas exactement avec une entrée multiligne, car -nle programme traite STDIN ligne par ligne. Il n'y a pas de saut de ligne dans ce code, mais essayer d'entrer quelque chose comme cela produira plusieurs tableaux au lieu d'un. Si cela ne convient pas aux spécifications, veuillez m'en informer et je corrigerai.

p $_.chars&"\\\"p $_.chars&".chars

2

ListSharp , 222 octets

STRG S=READ[<here>+"\\S.txt"]
ROWS T=ROWSPLIT S BY [""]
ROWS R=ROWSPLIT "STRG =EAD[<her>+\".tx]OWPLIBYCFMHVNc#isn()oay\r\n" BY [""]
ROWS R=SELECT FROM T WHERE[EVERY STRG IS ANY STRG IN R]
SHOW=<c#R.Distinct().ToArray()c#>

ridicule mais im diverti


2

sed, 47 caractères

:s;st[^])(*\1.s2t:[;^]tt;st\(.\)\(.*\1\)t\2t;ts

Je suis un peu déçu de voir combien de temps cela s'est avéré, en particulier pour supprimer les caractères répétés.


Quelle est la version de sed? GNU sed dit sed: -e expression #1, char 47: unterminated `s' command.
Dennis

43 octets dont 1 pour -r: sed -r ':;ss[^][str().*\12;:^]ss;ss(.)(.*\1)s\2s;t' je l'ai écrit avant de remarquer le vôtre et il s'est avéré être très similaire
izabera

@Dennis fixe; s'est avéré avoir un: après le [l'a amené à essayer d'analyser une classe de personnages
Geoff Reedy

@izabera nice, je suis assez surpris de constater que la commande: n'a pas réellement besoin de label et qu'elle change le sens de t sans label
Geoff Reedy

ouais c'est un gnuisme
izabera

2

Java 8 lambda, 152 142 140 caractères

Plutôt court:

s->s.chars().mapToObj(i->(char)i).filter(c->"COSTab\"\\cefh(i)j+l-mn.oprstuv>".contains(""+c)).collect(java.util.stream.Collectors.toSet())

Ou non-golfé ici:

public class Q89400 {

    static Set<Character> inAndQuine(String in) {
        return in.chars()
                .mapToObj(i->(char)i)
                .filter(c->"COSTab\"\\cefh(i)j+l-mn.oprstuv>".contains(""+c))
                .collect(java.util.stream.Collectors.toSet());

    }
}

Bien sûr, la solution non golfée est fausse, car elle ne correspond pas aux accolades et à quelques caractères supplémentaires, c’est juste pour des raisons de complétude.

La fonction prend une entrée en tant que Stringet renvoie un java.util.Set<Character>contenant les caractères présents à la fois en entrée et en source.

Mises à jour

Il s'est avéré que la solution ne fonctionnait pas. Je pensais que les String#containstests pour un match regex, mais c'est juste une correspondance littérale. J'ai ajouté quelques échappements pour citer les personnages, .mais ce n'était pas nécessaire, mais tout gâché à la place. Maintenant, sans cette fuite, nous sauvons quelques caractères et cela fonctionne réellement :)

Merci à @NonlinearFruit de m'avoir rappelé l'utilisation de variables à un caractère.


Renommer inpour être une seule lettre commea
NonlinearFruit

3
@NonlinearFruit tu as raison: O comment pourrais-je oublier ça?!
Frozn

2

SQF , 71 69 64 octets

Utilisation du format de fichier en tant que fonction:

i="-_h ;""=()sSplitrng"splitString"";i-(i-(_this splitString""))

Appeler comme "STRING" call NAME_OF_COMPILED_FUNCTION

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.