Ship of Theseus zastosował się do GPL - Czy mogę ponownie licencjonować mój program, jeśli wymienię wszystkie części pochodne?


99

I przetłumaczone na GPLv2 Cprogram na Python, ale okazało się, że trudno było przedłużyć zgodnie z przeznaczeniem i przepisał jej istotnych części. Program jest teraz strukturalnie zupełnie inny, ale w użyciu jest kilka dosłownie przetłumaczonych funkcji.

Statku Tezeusza Paradox (zgodnie z Wikipedii) „nasuwa się pytanie, czy obiekt, który miał zastąpić wszystkie jego komponenty pozostaje zasadniczo ten sam obiekt.”

Jeśli uda mi się napisać zamienniki dla funkcji dosłownych, czy będę mógł zmienić licencję na licencję, którą wolę?

Powiązane, czy byłbym w stanie wyciągnąć rozwiniętą architekturę i wykorzystać ją z inną licencją? Myślę, że sam byłby bardzo użyteczny, ale nie podoba mi się pomysł, że jest on „skażony” licencją GPL.

Dalsze działania : postanowiłem skontaktować się z właścicielem praw autorskich i otrzymałem zgodę na licencjonowanie . Czasami najlepszym sposobem jest interakcja społeczna niż programowa!


6
Porównaj audyt ReactOS : istniał zarzut, że ReactOS (darmowy zamiennik systemu Windows) został skażony przez użycie wyciekającego i poddanego inżynierii wstecznej kodu MS Windows (na który nigdy nie wzięli licencji). Rozwiązali go, systematycznie zastępując cały kod niejasnego pochodzenia legalnym kodem „inżynierii wstecznej w czystym pokoju” - zasadniczo nowy kod napisany z czystej specyfikacji.
jdm

3
@jdm Kod chińskiej ściany / pomieszczenia czystego musi być również napisany przez osoby, które nie były zaangażowane w proces inżynierii wstecznej i miały z nimi ograniczoną (sprawdzoną prawnie) komunikację. WRT zignorowanie licencji i po prostu „naruszenie praw autorskich” - oznaczałoby to to samo, ponieważ nadal nie byłbyś uprawniony do redystrybucji materiałów, do których naruszyłeś prawa autorskie.
goldilocks,

9
@jdm GPL nie jest umową i nie musi być przez nikogo akceptowana. GPL jest licencją i musisz ją przestrzegać, jeśli skorzystasz z licencji. Nie jest to ulica dwukierunkowa, negocjacja czy ustalanie zobowiązań na poziomie umownym. Określa jedyne reguły, na podstawie których możesz używać kodu. IANAL, ale wyjaśniło mi to kilku prawników zajmujących się licencjami.
Elin

3
@CrazyCasta: Mylisz się co do zakresu GPL. Oświadczasz, że to jedyny powód do posiadania jakichkolwiek praw. Jest to wyraźnie niepoprawne i całkowicie odrzucone przez samą GPL. GPL obejmuje wyłącznie prawa do dystrybucji. Masz nieograniczone prawo do używania i studiowania kodu, nawet bez akceptacji GPL.
MSalters,

1
@MSalters: GPL przyznaje prawa do dystrybucji i modyfikacji . Bez licencji masz prawo korzystać z oprogramowania w stanie, w jakim się znajduje.
RemcoGerlich,

Odpowiedzi:


95

Po pierwsze, odpowiedź brzmi „nie” (w przypadku tłumaczenia), nie można legalnie licencjonować go ani robić niczego poza oryginalnymi prawami licencyjnymi. Równie dobrze mogłeś wykonać 10 razy pracę oryginalnego autora, ale to nie ma znaczenia, jest wirusowe. Nie tylko dlatego, że jest to GPL, ale dlatego, że nie jest to czysty projekt ani przepisywanie.

Zmagałem się z tym krótko w 1992 r., Kiedy dokonałem ogromnej przeróbki starej bazy kodu MUD. Mieliśmy udaną grę, ale chcieliśmy robić to samo, a ludzie byli gotowi za to zapłacić, ale licencja DikuMUD surowo zabrania nam zarabiania pieniędzy. Konkurent, w tym czasie, również opierał swój kod na tej samej bazie kodu, i zdecydował się rażąco ignorować prawa autorskie, wyrywać wszelkie jego ślady i zasadniczo okłamywać wszystkich, w tym siebie. Ich logika brzmiała: „żaden z oryginalnego kodu nie istnieje” i „dokonaliśmy ogromnych przeróbek i ulepszeń” i ogólnie ignorujemy fakt, że zaczęli od 20 000 wierszy kodu. Pobierali opłaty za przedmioty w grze i zarabiali za dużo pieniędzy, aby przestać.

Byłem zazdrosny. Ale zbadałem prawo autorskie i skonsultowałem się z sumieniem i zdecydowałem, że nie mogę nawet użyć kodu, który napisałem, ponieważ szczerze nie zaprojektowałem serwera gry od podstaw.

Postanowiłem więc odłożyć moje pieniądze tam, gdzie były moje usta i pisać od zera, cały czas z kopią UNIXowego programowania sieci W. Richarda Stevena , zacząłem. Pisząc od zera, moja droga nauczyła mnie o wiele więcej niż wtedy, gdy przepisałem DikuMUD, a także nauczyło mnie, że tak naprawdę nie rozumiem, co to znaczy stać na czyichś barkach. W ciągu sześciu miesięcy miałem 50 000 linii kodu operacyjnego, które mogłem nazwać moim. Nazwałem go MUD ++ i wydałem pod BSD. Źle napisany we wczesnym stylu C ++, wciąż był to pierwszy darmowy MUD C ++ o otwartym kodzie źródłowym, o którym wiem. Do dziś nikt nie może mi tego odebrać. Miałem wtedy najlepszy serwer TCP, nikt inny nie mógł wykonać „gorącego restartu” bez upuszczania graczy, a wkrótce wszyscy kradli tę funkcję (i zauważyłem, że wiele GPL MUD ma fragmenty mojego kodu BSD - zawsze ciekawe, jak GPL może przejąć BSD-ware, ale nie odwrotnie ). W końcu przeszedłem do przodu, więc nie było tak, że decyzja była zrujnowaniem lub zrujnowaniem mojej fortuny, ale podczas gdy inni faceci zarabiali przez jakiś czas dużo pieniędzy, ostatnio wyglądałem, jakby się zmniejszyli, w świecie gier graficznych nie ma już dużego zapotrzebowania na tekst.

Historia się nie kończy ... kilka lat później pracowałem dla IBM, a Disney zatrudnił nas do napisania wieloosobowej gry 3D w czasie rzeczywistym dla Epcot Center i mogłem wykorzystać rdzeń TCP z MUD ++ jako bazę do tego serwer gry! Gdybym nie posiadał własnego kodu, nie pozwoliłbym mu go używać, co szczerze oszczędzało mi tygodni kodowania. W końcu jestem dumny z dokonanych wyborów i mam historię do opowiedzenia moim dzieciom.

Ludzie nie doceniają i nie doceniają korzyści płynących z korzystania z czyichś ram, na których można budować.

Jeśli uważasz, że to „posiadasz”, sprawdź się. Zacznij od nowa, mając przy sobie książkę w języku Python. Zobacz jak to jest. Nie oszukuj i nie patrz na starą bazę kodów. Spójrz na wynik. Zmusz się do samodzielnego przemyślenia każdego aspektu, przeprowadzając uczciwe badania. Będziesz do tego lepszy i prawdopodobnie będziesz mieć lepszy produkt.

Zanim to jednak zrobisz, spróbuj skontaktować się z oryginalnym autorem. Zapytaj ich, czy byliby skłonni do ponownej licencji. Jeśli planujesz sprzedawać pliki binarne, zaoferuj tantiemy. Wielu autorów, którzy wydali GPL w latach 90. i 2000., ma teraz 30, 40 i 50 lat i rozumie, co to znaczy zarabiać na życie dzięki oprogramowaniu. Widziałem więcej niż jedną licencjonującą swoje rzeczy z GPL na MIT, Apache, Boost lub BSD.

Wreszcie licencja nie zastępuje wcześniejszych praw do posiadanego kodu. Lub jeśli napisałeś czysty dodatek samodzielnie, na przykład, jeśli napisałeś silnik TCP jako dodatek do gry Tetris dla pojedynczego gracza, i może on być czysto samodzielny (zwłaszcza jeśli wcześniej wydałeś na innej licencji) może ponownie użyć twojego kodu w innych projektach. Masz również prawa autorskie.

Moje przekonanie jest darmowe, jest BEZPŁATNE Jeśli musisz dołączyć łańcuchy, nie nazywaj tego za darmo. Ktoś przesłał mi wiele lat później i powiedział, że użyli mojej gry w silniku komercyjnym, głównie w TCP i być może w interpretatorze kodu bajtowego. Zarabiali pieniądze. Ani trochę mi to nie przeszkadzało. Byłem szczęśliwy tak jak teraz, jako dumny ojciec.


4
Właściwie zamierzałem to zasugerować i zgubiłem się w swojej historii. Tak, z całą pewnością skonsultuj się z oryginalnym autorem, oddaj mu hołd, że tak powiem, a zapewne zdziwisz się, jak często autor jest po prostu szczęśliwy, że zadałeś sobie trud, by zapytać. I wielu młodych ludzi z college'u, którzy byli wielcy na GPL w latach 90. i 2000., zdają sobie teraz sprawę, że programiści muszą zarabiać na życie.
codenheim

13
Podoba mi się ta odpowiedź i chciałbym głosować za głosem, ale nie mogę, ze względu na wszystkie sprzeciwianie się GPL w ostatnim akapicie. Ciąg, który dołącza GPL, oznacza, że ​​ciągi mogą nie zostać dołączone w przyszłości.
Michael Shaw,

9
Dobra odpowiedź, a zwłaszcza. za zalecenie wypracowania umowy z oryginalnym autorem. Samowystarczalność jest często drogą do ubóstwa i chociaż przepisywanie całej biblioteki / platformy / aplikacji może być wartościowym przedsięwzięciem, nie zawsze tak jest.
Dan1701,

16
@MichaelShaw: Właściwie to pomyślałem, że to najbardziej błyskotliwa część tej odpowiedzi. Twoje roszczenie po drugiej stronie jest niezgodne z faktami . Jeśli autor kodu GPLd zdecyduje się wydać nowe wersje swojego kodu na innej licencji, mają oni dobre prawa. Dołączają ciągi nie do siebie, ale tylko do tych, z którymi „dzielą się” swoim kodem. Najładniejszym sposobem, w jaki mogę to opisać, jest podstawowy brak wiary w ludzkość.
back2dos,

9
Widzę, że licencje w stylu BSD sprawiają, że ten kod jest tutaj darmowy, co jest proste. Licencje w stylu GPL mają na celu utworzenie społeczności / ekosystemu wolnego oprogramowania / czegokolwiek konkurującego z zamkniętym i w inny sposób niewolnym oprogramowaniem. W tym celu dokonują szeregu strategicznych ruchów, a długość i różnorodność licencji GPL i licencji podobnych do GPL (oraz ich rozwój w czasie) pokazują, że jest to złożony biznes wymagający wielu ocen. Jeśli ci, którzy wolą jednego, uważają, że drugi jest niewolny, lub ci, którzy opowiadają się za obracaniem się przeciwko nim, obaj przegrają.
Steve Jessop,

31

Ten scenariusz jest opisany w FAQ GPL :

Co GPL mówi o tłumaczeniu kodu na inny język programowania?

Zgodnie z prawem autorskim tłumaczenie utworu uważa się za rodzaj modyfikacji. Dlatego to, co GPL mówi o wersjach zmodyfikowanych, dotyczy także wersji przetłumaczonych.


Ta konkretna część jest jasna, ale staje się rozmyta, gdy rozwijam się do reszty programu (przynajmniej, moim zdaniem). Oryginalny program był małą grą przekleństw, ale moja praca nad tłumaczeniem obejmuje dodawanie sieci, aby gracze mogli konkurować łeb w łeb, a także przebudować go, aby był bardziej modułowy / rozszerzalny. Zasadniczo silnik gry ma niewielkie podobieństwo do oryginału, ale sama gra mocno się wywodzi. To wraca do mojego powiązanego pytania, czy silnik jest teraz GPL, czy też byłbym w stanie go wyciągnąć i użyć go ponownie do projektu licencji MIT lub BSD.
Landon

7
@Landon Twoja praca jest nadal pochodną pracy GPL, więc jest związana z warunkami GPL.
Philipp

1
@Landon: to, co decyduje o tym, czy ma zastosowanie GPL, nie ma tak naprawdę nic wspólnego z GPL, ale czy ostateczny wynik jest „dziełem pochodnym”, czy nie. Dodanie większej liczby rzeczy nie zmienia pracy pochodnej w pracę niebędącą pochodną, ​​ponieważ zgodnie z prawem nie chodzi o proporcję pracy, która jest pochodną, ​​jest to kwota pierwotna. Rutynowa konwersja na inny język jest również pochodna i właśnie o tym informuje / przypomina przypomnienie. Pytanie, które musisz zadać swojemu prawnikowi, brzmi: „biorąc pod uwagę moje procedury, czy sąd uznałby to za dzieło pochodne?”.
Steve Jessop,

... jednak ta odpowiedź koncentruje się na „dosłownie przetłumaczonych funkcjach”, które prawdopodobnie są pochodnymi, ale które, jak twierdzisz, planujesz usunąć. W związku z tym nie sądzę, że tak naprawdę obejmuje on zamierzony scenariusz. Obejmuje twój bieżący i obejmuje scenariusz, w którym się znajdziesz, jeśli popełnisz błąd i nie zdołasz wyciąć wszystkiego, czego potrzebujesz.
Steve Jessop,

8

Wątpliwe jest, nawet jeśli przepisałeś całą bibliotekę od zera, że ​​przejdzie kontrolę prawną. Kod zostanie uznany za „skażony”, ponieważ widziałeś go w bibliotece licencjonowanej GPL.

Standardowe podejście do tego problemu nazywa się „wdrożeniem czystego pokoju”. Piszesz dokument wymagań i zlecasz go innej osobie (która nie widziała kodu GPL).

Zobacz także to pytanie: Przepisywanie kodu GPL w celu zmiany licencji

Jak ktoś trafnie to ujął, chińskie tłumaczenie Harry'ego Pottera jest dziełem pochodnym, mimo że wszystkie informacje zostały zastąpione.

Oczywiście prawdopodobieństwo, że zostaniesz pozwany o przepisanie biblioteki licencjonowanej na GPL (i moralność polegania na tym niskim prawdopodobieństwie) to zupełnie inne dyskusje.

Jeśli chodzi o dodawanie funkcjonalności do oryginalnego kodu, jest to (część) sama definicja dzieł pochodnych: dodawanie do oryginalnego dzieła. Nie ma znaczenia, ile dodałeś, ani jak mała była początkowa praca - wciąż jest pochodna.


3
Nie jestem pewien, czy podoba mi się wybór analogii: pierwotne pytanie brzmi bardziej, jakby myśleli, że pierwotnie łączyli swoje rzeczy z Harrym Potterem, ale teraz chcą połączyć je z własną epicką powieścią fantasy z magią i złoczyńcami, które mają miejsce przede wszystkim w szkole na zamku.

1
@Hurkyl So 50 Shades of Grey?
Yamikuronue,

8
Widok kodu nie oznacza, że ​​go skopiowałeś. Implementacja cleanroom jest przydatna, jeśli spodziewasz się, że właściciel oryginalnego kodu nie lubi tego, co robisz, i pozwie cię, więc możesz powiedzieć w sądzie: „nie skopiowaliśmy kodu; nawet gdybyśmy chcieli, nie mogłem ”, co jest silną obroną. Po obejrzeniu kodu możesz nadal powiedzieć „nie skopiowaliśmy kodu”, o ile jest to prawdą.
gnasher729,

2
Zgadzam się z @ gnasher729. GPL wyraźnie stwierdza, że ​​możesz uczyć się kodu. Założeniem jest, że autor wydał go, aby cię nauczyć (między innymi). Z tego powodu nigdy nie zastosowałem argumentu clean room do kodu GPL. Nie można opublikować książki kucharskiej, a następnie pozwać ludzi, którzy tworzą własne przepisy, chyba że kod jest opatentowany, wówczas ochrona patentowa obejmuje techniki i wynalazki, ale nie implementację (AFAIK). Prawa autorskie i patent to różne kwestie.
codenheim,

1
Powiedziałbym, że istnieje bardzo małe prawdopodobieństwo, że trafisz na salę sądową, jeśli naruszysz GPL, ponieważ z jednym lub dwoma wyjątkami za każdym razem, gdy pojawia się jakiś problem, prawnicy osób naruszających GPL rozumieją GPL, którą im nakazują albo przestań, albo zawrzyj umowę. Było to z pewnością moje doświadczenie za każdym razem, gdy musiałem napisać list o naruszeniu. Są też prawnicy pro bono, którzy będą bronić GPL dla pierwotnego programisty. Naprawdę najlepszą radą jest rozmowa z oryginalnym programistą. Poprosiłem ludzi o kod podwójny / licencjonowania i prawie zawsze mówili dobrze.
Elin,

7

Uwaga: GPL jest ważna tylko wtedy, gdy zwolnisz swoją pracę. Wydałeś już to?

Uwaga: To nie jest strona internetowa dla radców prawnych, więc wyrzuć wszystkie legalne FUD i zachowaj zdrowy rozsądek.

Opinia: GPL lub jakakolwiek licencja nie narusza praw autorskich , twierdzi, że kod źródłowy, bez względu na to, jak mała jest jego część. Tak więc, jeśli i tylko jeśli nie można zidentyfikować pracy „pochodnej” jako pochodzącej z oryginału, ponieważ zmieniłeś strukturę kodu i ponownie zaimplementowałeś całą funkcjonalność, to dla wszystkich praktycznych celów nie jest już pochodną, ​​ponieważ, dobrze być nie do odróżnienia od implementacji czystego pokoju.

Jest to bardzo trudne (niemożliwe?) Do osiągnięcia, gdy masz istniejącą bazę kodów, którą modyfikujesz, zamiast zaczynać od zera.


8
„Uwaga: nie jest to strona internetowa dla radców prawnych, więc wyrzuć całą legalną FUD i kieruj się zdrowym rozsądkiem”. Eee, ponieważ jest to oczywiście kwestia prawna, rozwiązaniem nie jest udawanie, że problemy prawne nie istnieją, ale zwrócenie się do prawnika. Rozumiem, że dzieło pochodne nie może przestać być dziełem pochodnym tylko dlatego, że robisz więcej czerpania.
David Richerby,

1
@DavidRicherby: Jeśli jest to pytanie prawne, odpowiedź jest specyficzna dla jurysdykcji i q należy zamknąć jako zbyt zlokalizowane. :-)
Martin Ba,

2
@MartinBa - prawo międzynarodowe zasadniczo zgadza się w sprawie praw autorskich. Istnieją lokalne odmiany, ale nie sądzę, aby pytania / odpowiedzi były koniecznie zbyt zlokalizowane, aby były przydatne.
cloudfeet

5

Jesteś właścicielem praw autorskich do każdego pisanego kodu. To, co upoważnia GPL: każdy kod, który przekażesz lub wydasz wraz z kodem GPL, musisz również wydać na podobnej licencji. Jednak prawa autorskie są nadal twoje.

Tak więc, jeśli zwolnisz oprogramowanie w części w trakcie przepisywania (więc istnieje mieszanka twojego kodu i starego kodu), musisz zwolnić tę część kodu jako GPL i nie można tego unieważnić. Jednak właścicielem praw autorskich jest ten, który decyduje o warunkach licencyjnych, więc nadal masz prawo do „podwójnej licencji” tej części kodu, w tym do łączenia go z innym kodem, który sam napisałeś, oraz sprzedażą / licencjonowaniem itp.

Ostrzeżenia:

  • chociaż prawa autorskie do kodu, który piszesz, są domyślnie twoje, możesz je zmienić na podstawie innej umowy / umowy, np. CLA określającej przeniesienie praw autorskich lub umowy z pracodawcą, który jest właścicielem całej pracy, którą wykonujesz „na swój czas”.
  • to, czy ponowne napisanie stanowi wystarczającą część „dzieła pochodnego”, że ostatecznie dzielisz się prawami autorskimi z oryginalnym autorem, jest kwestią stopnia. Jeśli przetłumaczysz kod wiersz po wierszu na inny język ( jak wspomniałeś w swoim pytaniu ), te części mogą równie dobrze liczyć się jako pochodne. Jeśli wdrożysz zamiennik zgodny z interfejsem API bez patrzenia na szczegóły, prawdopodobnie tak nie byłoby.

(źródło: sesja „prawa autorskie i open source” zorganizowana przez moją firmę kilka tygodni temu)


Możesz zamienić „dokument” na „umowę” lub „umowę”. Nie wystarczy po prostu napisać na papierze „DougM jest właścicielem kodu chmury”. Musielibyśmy przeprowadzić legalną wymianę, która przejdzie kontrolę sądową.
DougM,

Zależy od jurysdykcji - przynajmniej tam, gdzie jestem, nawet umowy ustne są wiążące, a jedynie trudne do udowodnienia. Post-it z odpowiednim pismem odznaczałby się całkiem dobrze w teorii . : p
cloudfeet

Jednak twój punkt jest dobry, a umowa / umowa to lepszy opis - dzięki :)
cloudfeet

3

Tak.

Inne odpowiedzi używają zbyt dużo tekstu wyjaśniającego opinie na temat tego, czy powinieneś czy nie, ale te opinie nie są tak istotne dla pytania.

Faktem jest, że po wymianie ostatnich części będziesz mieć nowe dzieło, które, co prawda, zostało skonstruowane na podstawie pracy na licencji GPL. Nie jest to poważny problem w prawie autorskim (patenty byłyby kolejnym problemem). Wszystko, co rozpowszechniacie, będzie waszym dziełem.

Istnieje wiele materiałów popierających teorię, że prawa autorskie do oprogramowania stanowią sumę częściowych praw autorskich. Na przykład MPL wyraźnie uznaje ten model. Sprawa Google / Oracle przeszła na prawa autorskie na poziomie linii.


3
Dzieło skonstruowane „na podstawie patrzenia” na inne dzieło jest dziełem pochodnym i byłoby zabrudzone tym samym prawem autorskim, co dzieło „oglądane”.
DougM,

1
@DougM: Przepraszam, ale to bardzo konserwatywne założenie, którego nigdy nie widziałem z powodzeniem stosowane w sądzie. Nie zapominaj, że jeśli teoria ta ma jakiekolwiek znaczenie prawne, dotyczyłaby również książek - kod komputerowy nie ma specjalnych praw określających, co jest dziełem pochodnym. Nikt nie będzie argumentował, że twoja książka jest pochodną Szekspira tylko dlatego, że czytasz jedną z jego sztuk w szkole. Zatem ten precedens potwierdza, że ​​pasek „pracy pochodnej” jest znacznie wyższy niż „przeczytał podobną pracę”.
MSalters

1
GPL wyraźnie stwierdza, że ​​możesz uczyć się kodu. To nie jest zastrzeżony adres IP, to darmowy, open source. Za czasów GPL nie widziałem żadnego wsparcia prawnego dla twierdzenia, że ​​przeglądanie opublikowanego przepisu w celu stworzenia własnego przepisu oznacza pochodną.
codenheim,

1
Można się zastanawiać, jak daleko posunął się Linux, gdyby zastąpienie kodu uniksowego oryginalnym kodem nie było wystarczające.
user2338816,

3
@ user2338816 Linux nie zaczął się od kodu uniksowego, zaczął od MINIX. I technicznie możliwe jest, że MINIX mógł mieć sprawę przeciwko Linuksowi. Zależy to od sposobu, w jaki Linux przepisał swój kod i licencji, na podstawie której kod MINIX został udostępniony uniwersytetom. Jednak sprowadza się to również do polityki i pieniędzy, czy MINIX naprawdę chce iść za Linuksem, i czy Linux ma pieniądze (za pośrednictwem korporacji takich jak Red Hat), aby się z nimi zwalczyć.
CrazyCasta

1

Krótka odpowiedź brzmi: nie możesz wiedzieć.

Kiedy rozmawiasz z Richardem, okazuje się, że jest „szalony jak lis” w wielu swoich realizacjach. GPL została napisana specjalnie z myślą o niejasnościach i niejasnych sformułowaniach. Są one ogólnie wyrażane na korzyść twórcy licencji, ale również wyrażają obawy dotyczące prawnika. Sprytnie, daje to Twojemu prawnikowi IP coraz większe obawy, gdy firma się powiększa. Małe przedsiębiorstwo komercyjne dokonujące „rozsądnej interpretacji” GPL może stanowić akceptowalne ryzyko, ale duża firma programowa może uznać za rozsądniejsze spalenie całego zespołu, któremu udało się uzyskać skażenie GPL.

Nie ma odpowiedzi. Nie będzie odpowiedzi. To jest odpowiedź.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.