Skip to content

Commit

Permalink
Add links to templates and other documents. Closes #745.
Browse files Browse the repository at this point in the history
  • Loading branch information
fniessink committed Jan 26, 2024
1 parent a20f879 commit 6837223
Show file tree
Hide file tree
Showing 47 changed files with 124 additions and 73 deletions.
2 changes: 1 addition & 1 deletion Content/Doelstellingen-tekst.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ De $KWALITEITSAANPAK$ heeft drie doelstellingen:

De Kwaliteitsaanpak zelf is geformuleerd in de vorm van maatregelen die elke software-ontwikkelende organisatie kan treffen om risico's van softwareontwikkeling te mitigeren en de kans op succesvolle softwareontwikkelprojecten te vergroten. De maatregelen zijn gebaseerd op geleerde lessen uit de praktijk van ICTU.

De Kwaliteitsaanpak is een evoluerende aanpak, gebaseerd op de ervaringen die ICTU continu opdoet in de projecten waarin ICTU samen met opdrachtgevers maatwerksoftware ontwikkelt en onderhoudt. ICTU hanteert daarbij de vuistregel dat als tenminste 80% van de projecten minstens 80% van de tijd een bepaalde werkwijze hanteren, voor die werkwijze een maatregel in de Kwaliteitsaanpak wordt opgenomen. Maar het kan ook voorkomen dat maatregelen om andere redenen landen in de Kwaliteitsaanpak; denk aan het toegankelijk maken van software dat wettelijk verplicht is.
De Kwaliteitsaanpak is een evoluerende aanpak, gebaseerd op de ervaringen die ICTU continu opdoet in de projecten waarin ICTU samen met opdrachtgevers maatwerksoftware ontwikkelt en onderhoudt. ICTU hanteert daarbij de vuistregel dat als tenminste 80% van de projecten minstens 80% van de tijd een bepaalde werkwijze hanteren, voor die werkwijze een maatregel in de Kwaliteitsaanpak wordt opgenomen. Maar het kan ook voorkomen dat maatregelen om andere redenen landen in de Kwaliteitsaanpak; denk aan het toegankelijk maken van software dat wettelijk verplicht is. Zie ook de wijzigingsgeschiedenis in [PDF-formaat]($BASE_URL$/$VERSIE$/ICTU-Kwaliteitsaanpak-Wijzigingsgeschiedenis.pdf) of [HTML-formaat]($BASE_URL$/$VERSIE$/ICTU-Kwaliteitsaanpak-Wijzigingsgeschiedenis.html).

De maatregelen vormen het startpunt voor de aanpak van ieder ICTU-softwareproject, waarbij ruimte wordt geboden voor variatie of alternatieve invulling. Bijvoorbeeld stelt de Kwaliteitsaanpak: software wordt minimaal bij iedere grote release of tenminste twee keer per jaar onderworpen aan een beveiligingstest door beveiligingsexperts die ICTU daarvoor inhuurt (zie [$M26$](#m26)). Een alternatief is dat de opdrachtgever de verantwoordelijkheid neemt voor het laten uitvoeren van beveiligingstests. Hierover maakt de projectleider nadere afspraken met de opdrachtgever.

Expand Down
2 changes: 1 addition & 1 deletion Content/Leeswijzer.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Bij de omschrijving van de maatregelen is gebruik gemaakt van de volgende rollen
* Project: de tijdelijke organisatie die de software ontwikkelt, onderhoudt en/of operationeel beheert. Het project bestaat uit medewerkers van ICTU, van de opdrachtgever en mogelijk ook van de beheerorganisatie of andere partijen. De softwareontwikkeling binnen het project gebeurt door één of meer Scrumteams, bestaande uit een product owner, ontwikkelaars en een Scrummaster. De product owner is altijd een medewerker van de opdrachtgevende organisatie. Als het project de software ook operationeel beheert past ICTU DevOps toe en maken ook DevOps-engineers deel uit van een Scrumteam. Eén van de ontwikkelaars heeft de rol van softwarearchitect.
* Projectleider: de ICTU-medewerker verantwoordelijk voor uitvoering van het project,
* Software delivery manager: organiseert het ontwikkelen en opleveren van software conform de vastgestelde eisen en de Kwaliteitsaanpak, rapporteert aan de projectleider,
* Kwaliteitsmanager: controleert en borgt de kwaliteit van software conform de vastgestelde eisen en de Kwaliteitsaanpak, rapporteert aan de projectleider.
* Kwaliteitsmanager: controleert en borgt de kwaliteit van software conform de vastgestelde eisen en de Kwaliteitsaanpak, rapporteert aan de projectleider. Voor de rol van kwaliteitsmanager is een [inwerkplan template]($BASE_URL$/$VERSIE$/ICTU-Template-Inwerkplan-Kwaliteitsmanager.docx) beschikbaar.

## Ondersteuning

Expand Down
23 changes: 23 additions & 0 deletions Content/Maatregelen/M01/Maatregel.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ Het plan van aanpak voor de voorfase en het plan van aanpak voor de realisatiefa

Als operationeel en/of applicatiebeheer onderdeel is van de te leveren dienstverlening tijdens de realisatiefase bevat het plan van aanpak voor de realisatiefase de hiervoor noodzakelijke afspraken met de opdrachtgever en de beheerorganisatie. De afspraken omvatten zowel de te behalen kwaliteitsniveaus van de dienstverlening als de uit te voeren operationele en applicatiebeheertaken. Daarnaast beschrijft het plan hoe informatie zal worden verzameld over de software tijdens het gebruik en over de uitgevoerde beheeractiviteiten. En hoe hierover zal worden gerapporteerd. Ook worden de criteria voor het beëindigen van de dienstverlening vastgelegd. De te leveren dienstverlening is afgestemd op het beheerplan van de beheerorganisatie.

Beschikbare templates:

- [Template plan van aanpak voorfase]($BASE_URL$/$VERSIE$/ICTU-Template-Plan-van-Aanpak-Voorfase.docx).
- [Template plan van aanpak realisatiefase]($BASE_URL$/$VERSIE$/ICTU-Template-Plan-van-Aanpak-Realisatiefase.docx).

### Beschrijving van functionele eisen

De beschrijving van functionele eisen bestaat uit epics en/of user stories, eventueel aangevuld met use cases. De beschrijving bevat tevens eisen voor ondersteuning van beheerfuncties, die door de beoogd beheerder gesteld worden, en voor logging, inclusief de globale inhoud van te loggen business events (gebeurtenissen op procesniveau) en de daarvoor geldende bewaartermijnen.
Expand All @@ -55,6 +60,10 @@ Overheidsorganisaties moeten een [toegankelijkheidsverklaring](https://www.digit

Bronnen van de opdrachtgever zoals procesbeschrijvingen, privacy impact assessment (PIA), beheeracceptatiecriteria, beveiligingsbeleid en projectstartarchitectuur vormen het startpunt voor de niet-functionele eisen.

Beschikbare templates:

- [Template niet-functionele eisen]($BASE_URL$/$VERSIE$/Neutraal-Template-Niet-Functionele-Eisen.docx).

### Product backlog

De product backlog is een geprioriteerd overzicht van alle nog te realiseren functionele en niet-functionele eigenschappen van de software. Al het werk dat het Scrumteam doet loopt via de backlog, niet alleen werk aan de broncode zelf maar bijvoorbeeld ook het schrijven van beheerdocumentatie. De product owner is de eigenaar van de product backlog. De zaken op de lijst zijn normaal gesproken in de vorm van een epic of user story. Hierin staat:
Expand All @@ -79,6 +88,12 @@ De infrastructuurarchitectuur beschrijft de topologie van de implementatie-omgev

Een prototype is een eerste, ruwe versie van de applicatie. Het prototype illustreert waar men uiteindelijk met de toepassing naar toe wil. Het maakt ideeën tastbaar en creëert een eerste indruk van structuur, ontwerp en functionaliteit.

Beschikbare templates:

- [Template globaal functioneel ontwerp]($BASE_URL$/$VERSIE$/ICTU-Template-Globaal-Functioneel-Ontwerp.docx).
- [Template softwarearchitectuurdocument]($BASE_URL$/$VERSIE$/ICTU-Template-Software-architectuurdocument.docx).
- [Template infrastructuurarchitectuur]($BASE_URL$/$VERSIE$/Neutraal-Template-Infrastructuurarchitectuur.docx).

### Testplannen en -rapportages

De testplannen bestaan uit een mastertestplan (MTP), gemaakt op basis van een productrisicoanalyse (PRA), en detailtestplannen. Het doel van een mastertestplan is om betrokkenen bij het testproces te informeren over de strategie, aanpak, activiteiten, inclusief de onderlinge relaties en afhankelijkheden, en de op te leveren producten met betrekking tot het testtraject. Het mastertestplan beschrijft deze strategie, aanpak, activiteiten en eindproducten, die in de detailtestplannen verder worden gedetailleerd.
Expand All @@ -87,6 +102,10 @@ Opdrachtgever is verantwoordelijk voor het mastertestplan. Het project maakt een

Logische testgevallen worden vastgelegd en gekoppeld met use cases en user stories. Fysieke testgevallen worden vastgelegd in het formaat van de gebruikte tooling en gekoppeld met de logische testgevallen. Op basis hiervan worden testrapportages gegenereerd die laten zien dat alle use cases en user stories zijn getest en dat die tests zijn geslaagd.

Beschikbare templates:

- [Template detailtestplan]($BASE_URL$/$VERSIE$/ICTU-Template-Detailtestplan.docx).

### Informatiebeveiligingsplan

Het informatiebeveiligingsplan vormt een praktisch toepasbaar document dat uitlegt binnen welke kaders bescherming geleverd wordt tegen welke dreigingen en met welke maatregelen die bescherming vorm krijgt. Mogelijke bronnen voor het informatiebeveiligingsplan zijn de business impact analysis (BIA), privacy impact assessment (PIA) en de threat and vulnerability assessment (TVA).
Expand All @@ -103,6 +122,10 @@ Als er bijzondere of hoge niet-functionele eisen zijn, beschrijft het ICTU-kwali

Als de opdrachtgever een overkoepelend kwaliteitsplan heeft zorgt het project dat het ICTU-kwaliteitsplan aansluit op het overkoepelende kwaliteitsplan.

Beschikbare templates:

- [Template kwaliteitsplan]($BASE_URL$/$VERSIE$/ICTU-Template-Kwaliteitsplan.docx).

### Deploybare versie van de software

Het project levert deploybare versies van de software in een formaat dat is afgestemd met de beheerorganisatie.
Expand Down
2 changes: 1 addition & 1 deletion Content/Maatregelen/M28/Maatregel.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Voor de belangrijkste verschillen beschrijft de projectleider:

De projectleider is verantwoordelijk voor het doen van de self-assessment, die in de regel door de software delivery manager wordt uitgevoerd. De kwaliteitsmanager reviewt de self-assessment, of de software delivery manager en kwaliteitsmanager voeren de self-assessment samen uit.

De self-assessment is een intern product, maar kan gedeeld worden met opdrachtgevers en andere betrokkenen. Voor het doen van de self-assessment stelt ICTU een ondersteunend formulier beschikbaar.
De self-assessment is een intern product, maar kan gedeeld worden met opdrachtgevers en andere betrokkenen. Voor het uitvoeren en vastleggen van de self-assessment stelt ICTU een [self-assessment formulier]($BASE_URL$/$VERSIE$/ICTU-Kwaliteitsaanpak-Checklist.xlsx) beschikbaar.

### Rationale

Expand Down
2 changes: 1 addition & 1 deletion Content/Templates/Colofon.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,6 @@ Rubricering conform [VIRBI 2013, art. 4](https://wetten.overheid.nl/BWBR0033507/

###### Template versie

Versie $VERSIE$, $DATUM$
Versie $VERSIE_ZONDER_V$, $DATUM$

Verbeterpunten t.a.v. deze template graag melden via [GitHub](https://github.com/ICTU/Kwaliteitsaanpak/issues).
1 change: 1 addition & 0 deletions Content/Wijzigingsgeschiedenis.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#### Kwaliteitsaanpak

* Het hoofdstuk 'Begrippenkader' is verwijderd. De begrippen die hierin werden besproken staan ook in de bijlage 'Terminologie'. Het hoofdstuk 'Leeswijzer' verwijst nu naar deze bijlage.
* Op relevante plekken zijn verwijzingen naar templates, self-assessment checklist en wijzigingsgeschiedenis toegevoegd.
* Paragraaf 3.5 "Evolutie van de aanpak zelf" verwijderd uit hoofdstuk 3 "Leeswijzer". Deze tekst staat ook al in hoofdstuk 2 "Doelstellingen en uitgangspunten".
* In M01 "Het project levert in elke fase vastgestelde producten en informatie op": De testplannen uitgesplitst naar MTP en detailtestplannen zodat deze apart kunnen worden ingevuld in de self-assessment. Onder het kopje Vrijgaveadvies, opgenomen dat het de verantwoordelijkheid van de opdrachtgever is om te organiseren dat betrokken partijen informatie aanleveren voor het vrijgaveadvies.
* De titel van maatregel M02 is veranderd van "Het project zorgt dat het product continu aan de kwaliteitsnormen voldoet" in "Het project bewaakt continu dat het product aan de kwaliteitsnormen voldoet". Continue aan alle kwaliteitsnormen voldoen is in de praktijk onmogelijk (zie ook M08 "Het project maakt technische schuld inzichtelijk en lost deze planmatig op"). Hiermee is de overlap met M06 "Het project meet kwaliteitsnormen geautomatiseerd en frequent" zo groot dat deze laatste maatregel is komen te vervallen.
Expand Down
1 change: 1 addition & 0 deletions DocumentDefinitions/Shared/variables.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"KWALITEITSAANPAK": "ICTU Kwaliteitsaanpak Softwareontwikkeling",
"BASE_URL": "https://ictu.github.io/Kwaliteitsaanpak",
"M01": "M01: Het project levert in elke fase vastgestelde producten en informatie op",
"M02": "M02: Het project bewaakt continu dat het product aan de kwaliteitsnormen voldoet",
"M03": "M03: Het project zorgt dat het product traceerbaar aan eisen voldoet",
Expand Down
2 changes: 1 addition & 1 deletion DocumentDefinitions/compacte-voorfase.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"docx": {
"OutputFile": "ICTU-Template-Compacte-Voorfase.docx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"ReferenceFile": "DocumentDefinitions/reference-ictu.docx"
}
Expand Down
2 changes: 1 addition & 1 deletion DocumentDefinitions/detailtestplan.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"docx": {
"OutputFile": "ICTU-Template-Detailtestplan.docx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"ReferenceFile": "DocumentDefinitions/reference-ictu.docx"
}
Expand Down
2 changes: 1 addition & 1 deletion DocumentDefinitions/generiek-template-neutral.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"docx": {
"OutputFile": "Neutraal-Template-Generiek.docx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"ReferenceFile": "DocumentDefinitions/reference-neutral.docx"
}
Expand Down
2 changes: 1 addition & 1 deletion DocumentDefinitions/generiek-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"docx": {
"OutputFile": "ICTU-Template-Generiek.docx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],

"ReferenceFile": "DocumentDefinitions/reference-ictu.docx"
Expand Down
2 changes: 1 addition & 1 deletion DocumentDefinitions/globaal-functioneel-ontwerp.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"docx": {
"OutputFile": "ICTU-Template-Globaal-Functioneel-Ontwerp.docx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"ReferenceFile": "DocumentDefinitions/reference-ictu.docx"
}
Expand Down
2 changes: 1 addition & 1 deletion DocumentDefinitions/infrastructuurarchitectuur.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"docx": {
"OutputFile": "Neutraal-Template-Infrastructuurarchitectuur.docx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"ReferenceFile": "DocumentDefinitions/reference-neutral.docx"
}
Expand Down
2 changes: 1 addition & 1 deletion DocumentDefinitions/inwerkplan-kwaliteitsmanager.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"docx": {
"OutputFile": "ICTU-Template-Inwerkplan-Kwaliteitsmanager.docx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"ReferenceFile": "DocumentDefinitions/reference-ictu.docx"
}
Expand Down
10 changes: 5 additions & 5 deletions DocumentDefinitions/kwaliteitsaanpak-samenvatting.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"pdf": {
"OutputFile": "ICTU-Kwaliteitsaanpak-Samenvatting.pdf",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"CopyFiles": [
{
Expand All @@ -36,20 +36,20 @@
"html": {
"OutputFile": "ICTU-Kwaliteitsaanpak-Samenvatting.html",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"CopyFiles": [
{
"from": "DocumentDefinitions/Shared/document.css",
"to": ["docs/wip/ICTU-Kwaliteitsaanpak-Samenvatting.css"]
"to": ["docs/$VERSIE$/ICTU-Kwaliteitsaanpak-Samenvatting.css"]
},
{
"from": "Content/Images/ICTU.png",
"to": ["docs/wip/ICTU.png"]
"to": ["docs/$VERSIE$/ICTU.png"]
},
{
"from": "Content/Images/word-cloud.png",
"to": ["docs/wip/word-cloud.png"]
"to": ["docs/$VERSIE$/word-cloud.png"]
}
]
}
Expand Down
16 changes: 8 additions & 8 deletions DocumentDefinitions/kwaliteitsaanpak.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"pdf": {
"OutputFile": "ICTU-Kwaliteitsaanpak.pdf",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"CopyFiles": [
{
Expand All @@ -33,37 +33,37 @@
"html": {
"OutputFile": "ICTU-Kwaliteitsaanpak.html",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"CopyFiles": [
{
"from": "DocumentDefinitions/Shared/document.css",
"to": ["docs/wip/ICTU-Kwaliteitsaanpak.css"]
"to": ["docs/$VERSIE$/ICTU-Kwaliteitsaanpak.css"]
},
{
"from": "Content/Images/relaties-tussen-producten.png",
"to": ["docs/wip/relaties-tussen-producten.png"]
"to": ["docs/$VERSIE$/relaties-tussen-producten.png"]
},
{
"from": "Content/Images/ICTU.png",
"to": ["docs/wip/ICTU.png"]
"to": ["docs/$VERSIE$/ICTU.png"]
},
{
"from": "Content/Images/word-cloud.png",
"to": ["docs/wip/word-cloud.png"]
"to": ["docs/$VERSIE$/word-cloud.png"]
}
]
},
"xlsx": {
"OutputFile": "ICTU-Kwaliteitsaanpak-Checklist.xlsx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
]
},
"pptx": {
"OutputFile": "ICTU-Kwaliteitsaanpak.pptx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"ReferenceFile": "DocumentDefinitions/reference-ictu.pptx"
}
Expand Down
2 changes: 1 addition & 1 deletion DocumentDefinitions/kwaliteitsplan.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"docx": {
"OutputFile": "ICTU-Template-Kwaliteitsplan.docx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"ReferenceFile": "DocumentDefinitions/reference-ictu.docx"
}
Expand Down
2 changes: 1 addition & 1 deletion DocumentDefinitions/niet-functionele-eisen.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"docx": {
"OutputFile": "Neutraal-Template-Niet-Functionele-Eisen.docx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"ReferenceFile": "DocumentDefinitions/reference-neutral.docx"
}
Expand Down
2 changes: 1 addition & 1 deletion DocumentDefinitions/plan-van-aanpak-realisatiefase.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"docx": {
"OutputFile": "ICTU-Template-Plan-van-Aanpak-Realisatiefase.docx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"ReferenceFile": "DocumentDefinitions/reference-ictu.docx"
}
Expand Down
2 changes: 1 addition & 1 deletion DocumentDefinitions/plan-van-aanpak-voorfase.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"docx": {
"OutputFile": "ICTU-Template-Plan-van-Aanpak-Voorfase.docx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"ReferenceFile": "DocumentDefinitions/reference-ictu.docx"
}
Expand Down
2 changes: 1 addition & 1 deletion DocumentDefinitions/softwarearchitectuurdocument.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"docx": {
"OutputFile": "ICTU-Template-Software-architectuurdocument.docx",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"ReferenceFile": "DocumentDefinitions/reference-ictu.docx"
}
Expand Down
12 changes: 6 additions & 6 deletions DocumentDefinitions/wijzigingsgeschiedenis.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"pdf": {
"OutputFile": "ICTU-Kwaliteitsaanpak-Wijzigingsgeschiedenis.pdf",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"CopyFiles": [
{
Expand All @@ -36,24 +36,24 @@
"html": {
"OutputFile": "ICTU-Kwaliteitsaanpak-Wijzigingsgeschiedenis.html",
"OutputPaths": [
"docs/wip"
"docs/$VERSIE$"
],
"CopyFiles": [
{
"from": "DocumentDefinitions/Shared/document.css",
"to": ["docs/wip/ICTU-Kwaliteitsaanpak.css"]
"to": ["docs/$VERSIE$/ICTU-Kwaliteitsaanpak.css"]
},
{
"from": "Content/Images/relaties-tussen-producten.png",
"to": ["docs/wip/relaties-tussen-producten.png"]
"to": ["docs/$VERSIE$/relaties-tussen-producten.png"]
},
{
"from": "Content/Images/ICTU.png",
"to": ["docs/wip/ICTU.png"]
"to": ["docs/$VERSIE$/ICTU.png"]
},
{
"from": "Content/Images/word-cloud.png",
"to": ["docs/wip/word-cloud.png"]
"to": ["docs/$VERSIE$/word-cloud.png"]
}
]
}
Expand Down
Loading

0 comments on commit 6837223

Please sign in to comment.