<matrixBuild _class='hudson.matrix.MatrixBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='hudson.model.ParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>EMAIL_NOTIFICATIONS</name><value>jenkins-notifications@lists.osmocom.org laforge@gnumonks.org</value></parameter></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>640186</blockedDurationMillis><blockedTimeMillis>640186</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>936662</buildingDurationMillis><executingTimeMillis>936662</executingTimeMillis><executorUtilization>1.0</executorUtilization><queuingDurationMillis>647360</queuingDurationMillis><queuingTimeMillis>647360</queuingTimeMillis><subTaskCount>0</subTaskCount><totalDurationMillis>1584022</totalDurationMillis><waitingDurationMillis>7167</waitingDurationMillis><waitingTimeMillis>7167</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginpmaierfixgr _class='hudson.plugins.git.util.Build'><buildNumber>2045</buildNumber><marked><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><branch><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><name>refs/remotes/origin/pmaier/fixgr</name></branch></marked><revision><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><branch><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><name>refs/remotes/origin/pmaier/fixgr</name></branch></revision></refsremotesoriginpmaierfixgr><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>2122</buildNumber><marked><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></marked><revision><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></revision></originmaster><refsremotesoriginpmaierara-m _class='hudson.plugins.git.util.Build'><buildNumber>1320</buildNumber><marked><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><branch><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><name>refs/remotes/origin/pmaier/ara-m</name></branch></marked><revision><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><branch><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><name>refs/remotes/origin/pmaier/ara-m</name></branch></revision></refsremotesoriginpmaierara-m><refsremotesoriginpmaierkeepfiles _class='hudson.plugins.git.util.Build'><buildNumber>1353</buildNumber><marked><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><branch><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><name>refs/remotes/origin/pmaier/keepfiles</name></branch></marked><revision><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><branch><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><name>refs/remotes/origin/pmaier/keepfiles</name></branch></revision></refsremotesoriginpmaierkeepfiles><refsremotesoriginpmaierfixapdu _class='hudson.plugins.git.util.Build'><buildNumber>1421</buildNumber><marked><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><branch><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><name>refs/remotes/origin/pmaier/fixapdu</name></branch></marked><revision><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><branch><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><name>refs/remotes/origin/pmaier/fixapdu</name></branch></revision></refsremotesoriginpmaierfixapdu><refsremotesoriginpmaieraramtest _class='hudson.plugins.git.util.Build'><buildNumber>1467</buildNumber><marked><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><branch><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><name>refs/remotes/origin/pmaier/aramtest</name></branch></marked><revision><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><branch><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><name>refs/remotes/origin/pmaier/aramtest</name></branch></revision></refsremotesoriginpmaieraramtest><refsremotesoriginosmithwip _class='hudson.plugins.git.util.Build'><buildNumber>1816</buildNumber><marked><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><branch><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></marked><revision><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><branch><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></revision></refsremotesoriginosmithwip><refsremotesoriginpmaierotatest _class='hudson.plugins.git.util.Build'><buildNumber>2022</buildNumber><marked><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><branch><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><name>refs/remotes/origin/pmaier/otatest</name></branch></marked><revision><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><branch><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><name>refs/remotes/origin/pmaier/otatest</name></branch></revision></refsremotesoriginpmaierotatest><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>402</buildNumber><marked><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><branch><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><branch><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/pysim</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://jenkins.osmocom.org/jenkins/view/SIMtrace/job/master-pysim/2122/artifact</artifactsUrl><changesUrl>https://jenkins.osmocom.org/jenkins/view/SIMtrace/job/master-pysim/changes</changesUrl><displayUrl>https://jenkins.osmocom.org/jenkins/view/SIMtrace/job/master-pysim/2122/</displayUrl><testsUrl>https://jenkins.osmocom.org/jenkins/view/SIMtrace/job/master-pysim/2122/testReport</testsUrl></action><building>false</building><displayName>#2122</displayName><duration>936662</duration><estimatedDuration>940203</estimatedDuration><fullDisplayName>master-pysim #2122</fullDisplayName><id>2122</id><inProgress>false</inProgress><keepLog>false</keepLog><number>2122</number><queueId>103941</queueId><result>SUCCESS</result><timestamp>1777492248527</timestamp><url>https://jenkins.osmocom.org/jenkins/view/SIMtrace/job/master-pysim/2122/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/pySim-prog_test/Wavemobile-SIM.ok</affectedPath><affectedPath>pySim/legacy/cards.py</affectedPath><affectedPath>tests/pySim-prog_test/Fairwaves-SIM.ok</affectedPath><commitId>8fa7727a14db2472ccf03f1fe147ee653a84f45d</commitId><timestamp>1777491554000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>pySim-prog/cards: fix programming of EF.SMSP

The legacy code found in legacy/cards.py does not use the modern
construct based encoder (pySim-read uses it). The card classes either
use their own implementation of update_smsp or use the generic method
provided by the SimCard class. The latter one is true for FairwavesSIM
and WavemobileSim.

Unfortunately the implementation found in the SimCard is wrong. It
adds padding at the end of the file instead of the beginning. This
completely messes up the contents of EF.SMSP for the cards using this
method. To fix this, let's use the leftpad feature provided by
the update_record. This will ensure a correct alignment of the file
contents.

Related: SYS#7765
Change-Id: Ie112418f1f1461762d61365d3863181ca6be7245
</comment><date>2026-04-29 19:39:14 +0000</date><id>8fa7727a14db2472ccf03f1fe147ee653a84f45d</id><msg>pySim-prog/cards: fix programming of EF.SMSP</msg><path><editType>edit</editType><file>tests/pySim-prog_test/Wavemobile-SIM.ok</file></path><path><editType>edit</editType><file>pySim/legacy/cards.py</file></path><path><editType>edit</editType><file>tests/pySim-prog_test/Fairwaves-SIM.ok</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pySim/ts_51_011.py</affectedPath><commitId>593bfa09119383d23b9e3385fc2d35a036a796c5</commitId><timestamp>1777491554000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>ts_51_011/EF.SMSP: fix handling of 'alpha_id' field

The field 'alpha_id' is technically not an optional field, even though
the specification describes it as optional. Once the card manufacturer
decides that the field should be present, it must be always present and
vice versa.

(see code comment for a more detailed description)

Related: SYS#7765
Change-Id: I0ec99b2648b22c56f9145345e4cd8776f9217701
</comment><date>2026-04-29 19:39:14 +0000</date><id>593bfa09119383d23b9e3385fc2d35a036a796c5</id><msg>ts_51_011/EF.SMSP: fix handling of 'alpha_id' field</msg><path><editType>edit</editType><file>pySim/ts_51_011.py</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><description></description><fullName>laforge</fullName><id>laforge</id></culprit><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>EMAIL_NOTIFICATIONS</name><value>jenkins-notifications@lists.osmocom.org laforge@gnumonks.org</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "master-pysim" build number 2,122</shortDescription><upstreamBuild>2122</upstreamBuild><upstreamProject>master-pysim</upstreamProject><upstreamUrl>job/master-pysim/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>935615</buildingDurationMillis><executingTimeMillis>935615</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>2122</buildNumber><marked><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></marked><revision><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></revision></originmaster></buildsByBranchName><lastBuiltRevision><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/pysim</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#2122</displayName><duration>935615</duration><estimatedDuration>937851</estimatedDuration><fullDisplayName>master-pysim » card-test,a1=default,a3=default,a4=default,simtester #2122</fullDisplayName><id>2122</id><inProgress>false</inProgress><keepLog>false</keepLog><number>2122</number><queueId>103946</queueId><result>SUCCESS</result><timestamp>1777492248527</timestamp><url>https://jenkins.osmocom.org/jenkins/view/SIMtrace/job/master-pysim/JOB_TYPE=card-test,a1=default,a3=default,a4=default,label=simtester/2122/</url><builtOn>simtester</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/pySim-prog_test/Wavemobile-SIM.ok</affectedPath><affectedPath>pySim/legacy/cards.py</affectedPath><affectedPath>tests/pySim-prog_test/Fairwaves-SIM.ok</affectedPath><commitId>8fa7727a14db2472ccf03f1fe147ee653a84f45d</commitId><timestamp>1777491554000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>pySim-prog/cards: fix programming of EF.SMSP

The legacy code found in legacy/cards.py does not use the modern
construct based encoder (pySim-read uses it). The card classes either
use their own implementation of update_smsp or use the generic method
provided by the SimCard class. The latter one is true for FairwavesSIM
and WavemobileSim.

Unfortunately the implementation found in the SimCard is wrong. It
adds padding at the end of the file instead of the beginning. This
completely messes up the contents of EF.SMSP for the cards using this
method. To fix this, let's use the leftpad feature provided by
the update_record. This will ensure a correct alignment of the file
contents.

Related: SYS#7765
Change-Id: Ie112418f1f1461762d61365d3863181ca6be7245
</comment><date>2026-04-29 19:39:14 +0000</date><id>8fa7727a14db2472ccf03f1fe147ee653a84f45d</id><msg>pySim-prog/cards: fix programming of EF.SMSP</msg><path><editType>edit</editType><file>pySim/legacy/cards.py</file></path><path><editType>edit</editType><file>tests/pySim-prog_test/Fairwaves-SIM.ok</file></path><path><editType>edit</editType><file>tests/pySim-prog_test/Wavemobile-SIM.ok</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pySim/ts_51_011.py</affectedPath><commitId>593bfa09119383d23b9e3385fc2d35a036a796c5</commitId><timestamp>1777491554000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>ts_51_011/EF.SMSP: fix handling of 'alpha_id' field

The field 'alpha_id' is technically not an optional field, even though
the specification describes it as optional. Once the card manufacturer
decides that the field should be present, it must be always present and
vice versa.

(see code comment for a more detailed description)

Related: SYS#7765
Change-Id: I0ec99b2648b22c56f9145345e4cd8776f9217701
</comment><date>2026-04-29 19:39:14 +0000</date><id>593bfa09119383d23b9e3385fc2d35a036a796c5</id><msg>ts_51_011/EF.SMSP: fix handling of 'alpha_id' field</msg><path><editType>edit</editType><file>pySim/ts_51_011.py</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>EMAIL_NOTIFICATIONS</name><value>jenkins-notifications@lists.osmocom.org laforge@gnumonks.org</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "master-pysim" build number 2,122</shortDescription><upstreamBuild>2122</upstreamBuild><upstreamProject>master-pysim</upstreamProject><upstreamUrl>job/master-pysim/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>11300</buildingDurationMillis><executingTimeMillis>11300</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>1</waitingDurationMillis><waitingTimeMillis>1</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>2122</buildNumber><marked><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></marked><revision><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></revision></originmaster></buildsByBranchName><lastBuiltRevision><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/pysim</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#2122</displayName><duration>11300</duration><estimatedDuration>10782</estimatedDuration><fullDisplayName>master-pysim » distcheck,a1=default,a3=default,a4=default,osmocom-master #2122</fullDisplayName><id>2122</id><inProgress>false</inProgress><keepLog>false</keepLog><number>2122</number><queueId>103947</queueId><result>SUCCESS</result><timestamp>1777492248527</timestamp><url>https://jenkins.osmocom.org/jenkins/view/SIMtrace/job/master-pysim/JOB_TYPE=distcheck,a1=default,a3=default,a4=default,label=osmocom-master/2122/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/pySim-prog_test/Wavemobile-SIM.ok</affectedPath><affectedPath>pySim/legacy/cards.py</affectedPath><affectedPath>tests/pySim-prog_test/Fairwaves-SIM.ok</affectedPath><commitId>8fa7727a14db2472ccf03f1fe147ee653a84f45d</commitId><timestamp>1777491554000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>pySim-prog/cards: fix programming of EF.SMSP

The legacy code found in legacy/cards.py does not use the modern
construct based encoder (pySim-read uses it). The card classes either
use their own implementation of update_smsp or use the generic method
provided by the SimCard class. The latter one is true for FairwavesSIM
and WavemobileSim.

Unfortunately the implementation found in the SimCard is wrong. It
adds padding at the end of the file instead of the beginning. This
completely messes up the contents of EF.SMSP for the cards using this
method. To fix this, let's use the leftpad feature provided by
the update_record. This will ensure a correct alignment of the file
contents.

Related: SYS#7765
Change-Id: Ie112418f1f1461762d61365d3863181ca6be7245
</comment><date>2026-04-29 19:39:14 +0000</date><id>8fa7727a14db2472ccf03f1fe147ee653a84f45d</id><msg>pySim-prog/cards: fix programming of EF.SMSP</msg><path><editType>edit</editType><file>pySim/legacy/cards.py</file></path><path><editType>edit</editType><file>tests/pySim-prog_test/Wavemobile-SIM.ok</file></path><path><editType>edit</editType><file>tests/pySim-prog_test/Fairwaves-SIM.ok</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pySim/ts_51_011.py</affectedPath><commitId>593bfa09119383d23b9e3385fc2d35a036a796c5</commitId><timestamp>1777491554000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>ts_51_011/EF.SMSP: fix handling of 'alpha_id' field

The field 'alpha_id' is technically not an optional field, even though
the specification describes it as optional. Once the card manufacturer
decides that the field should be present, it must be always present and
vice versa.

(see code comment for a more detailed description)

Related: SYS#7765
Change-Id: I0ec99b2648b22c56f9145345e4cd8776f9217701
</comment><date>2026-04-29 19:39:14 +0000</date><id>593bfa09119383d23b9e3385fc2d35a036a796c5</id><msg>ts_51_011/EF.SMSP: fix handling of 'alpha_id' field</msg><path><editType>edit</editType><file>pySim/ts_51_011.py</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>EMAIL_NOTIFICATIONS</name><value>jenkins-notifications@lists.osmocom.org laforge@gnumonks.org</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "master-pysim" build number 2,122</shortDescription><upstreamBuild>2122</upstreamBuild><upstreamProject>master-pysim</upstreamProject><upstreamUrl>job/master-pysim/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>31693</buildingDurationMillis><executingTimeMillis>31693</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginpmaierfixgr _class='hudson.plugins.git.util.Build'><buildNumber>2045</buildNumber><marked><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><branch><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><name>refs/remotes/origin/pmaier/fixgr</name></branch></marked><revision><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><branch><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><name>refs/remotes/origin/pmaier/fixgr</name></branch></revision></refsremotesoriginpmaierfixgr><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>2122</buildNumber><marked><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></marked><revision><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></revision></originmaster><refsremotesoriginpmaierara-m _class='hudson.plugins.git.util.Build'><buildNumber>1320</buildNumber><marked><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><branch><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><name>refs/remotes/origin/pmaier/ara-m</name></branch></marked><revision><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><branch><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><name>refs/remotes/origin/pmaier/ara-m</name></branch></revision></refsremotesoriginpmaierara-m><refsremotesoriginpmaierkeepfiles _class='hudson.plugins.git.util.Build'><buildNumber>1353</buildNumber><marked><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><branch><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><name>refs/remotes/origin/pmaier/keepfiles</name></branch></marked><revision><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><branch><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><name>refs/remotes/origin/pmaier/keepfiles</name></branch></revision></refsremotesoriginpmaierkeepfiles><refsremotesoriginpmaierfixapdu _class='hudson.plugins.git.util.Build'><buildNumber>1421</buildNumber><marked><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><branch><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><name>refs/remotes/origin/pmaier/fixapdu</name></branch></marked><revision><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><branch><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><name>refs/remotes/origin/pmaier/fixapdu</name></branch></revision></refsremotesoriginpmaierfixapdu><refsremotesoriginpmaieraramtest _class='hudson.plugins.git.util.Build'><buildNumber>1467</buildNumber><marked><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><branch><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><name>refs/remotes/origin/pmaier/aramtest</name></branch></marked><revision><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><branch><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><name>refs/remotes/origin/pmaier/aramtest</name></branch></revision></refsremotesoriginpmaieraramtest><refsremotesoriginosmithwip _class='hudson.plugins.git.util.Build'><buildNumber>1816</buildNumber><marked><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><branch><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></marked><revision><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><branch><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></revision></refsremotesoriginosmithwip><refsremotesoriginpmaierotatest _class='hudson.plugins.git.util.Build'><buildNumber>2022</buildNumber><marked><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><branch><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><name>refs/remotes/origin/pmaier/otatest</name></branch></marked><revision><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><branch><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><name>refs/remotes/origin/pmaier/otatest</name></branch></revision></refsremotesoriginpmaierotatest><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>402</buildNumber><marked><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><branch><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><branch><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/pysim</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#2122</displayName><duration>31693</duration><estimatedDuration>29690</estimatedDuration><fullDisplayName>master-pysim » docs,a1=default,a3=default,a4=default,osmocom-master #2122</fullDisplayName><id>2122</id><inProgress>false</inProgress><keepLog>false</keepLog><number>2122</number><queueId>103945</queueId><result>SUCCESS</result><timestamp>1777492248527</timestamp><url>https://jenkins.osmocom.org/jenkins/view/SIMtrace/job/master-pysim/JOB_TYPE=docs,a1=default,a3=default,a4=default,label=osmocom-master/2122/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/pySim-prog_test/Wavemobile-SIM.ok</affectedPath><affectedPath>tests/pySim-prog_test/Fairwaves-SIM.ok</affectedPath><affectedPath>pySim/legacy/cards.py</affectedPath><commitId>8fa7727a14db2472ccf03f1fe147ee653a84f45d</commitId><timestamp>1777491554000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>pySim-prog/cards: fix programming of EF.SMSP

The legacy code found in legacy/cards.py does not use the modern
construct based encoder (pySim-read uses it). The card classes either
use their own implementation of update_smsp or use the generic method
provided by the SimCard class. The latter one is true for FairwavesSIM
and WavemobileSim.

Unfortunately the implementation found in the SimCard is wrong. It
adds padding at the end of the file instead of the beginning. This
completely messes up the contents of EF.SMSP for the cards using this
method. To fix this, let's use the leftpad feature provided by
the update_record. This will ensure a correct alignment of the file
contents.

Related: SYS#7765
Change-Id: Ie112418f1f1461762d61365d3863181ca6be7245
</comment><date>2026-04-29 19:39:14 +0000</date><id>8fa7727a14db2472ccf03f1fe147ee653a84f45d</id><msg>pySim-prog/cards: fix programming of EF.SMSP</msg><path><editType>edit</editType><file>tests/pySim-prog_test/Wavemobile-SIM.ok</file></path><path><editType>edit</editType><file>tests/pySim-prog_test/Fairwaves-SIM.ok</file></path><path><editType>edit</editType><file>pySim/legacy/cards.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pySim/ts_51_011.py</affectedPath><commitId>593bfa09119383d23b9e3385fc2d35a036a796c5</commitId><timestamp>1777491554000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>ts_51_011/EF.SMSP: fix handling of 'alpha_id' field

The field 'alpha_id' is technically not an optional field, even though
the specification describes it as optional. Once the card manufacturer
decides that the field should be present, it must be always present and
vice versa.

(see code comment for a more detailed description)

Related: SYS#7765
Change-Id: I0ec99b2648b22c56f9145345e4cd8776f9217701
</comment><date>2026-04-29 19:39:14 +0000</date><id>593bfa09119383d23b9e3385fc2d35a036a796c5</id><msg>ts_51_011/EF.SMSP: fix handling of 'alpha_id' field</msg><path><editType>edit</editType><file>pySim/ts_51_011.py</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>EMAIL_NOTIFICATIONS</name><value>jenkins-notifications@lists.osmocom.org laforge@gnumonks.org</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "master-pysim" build number 2,122</shortDescription><upstreamBuild>2122</upstreamBuild><upstreamProject>master-pysim</upstreamProject><upstreamUrl>job/master-pysim/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>13194</buildingDurationMillis><executingTimeMillis>13194</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginpmaierfixgr _class='hudson.plugins.git.util.Build'><buildNumber>2045</buildNumber><marked><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><branch><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><name>refs/remotes/origin/pmaier/fixgr</name></branch></marked><revision><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><branch><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><name>refs/remotes/origin/pmaier/fixgr</name></branch></revision></refsremotesoriginpmaierfixgr><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>2122</buildNumber><marked><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></marked><revision><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></revision></originmaster><refsremotesoriginpmaierara-m _class='hudson.plugins.git.util.Build'><buildNumber>1320</buildNumber><marked><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><branch><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><name>refs/remotes/origin/pmaier/ara-m</name></branch></marked><revision><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><branch><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><name>refs/remotes/origin/pmaier/ara-m</name></branch></revision></refsremotesoriginpmaierara-m><refsremotesoriginpmaierkeepfiles _class='hudson.plugins.git.util.Build'><buildNumber>1353</buildNumber><marked><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><branch><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><name>refs/remotes/origin/pmaier/keepfiles</name></branch></marked><revision><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><branch><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><name>refs/remotes/origin/pmaier/keepfiles</name></branch></revision></refsremotesoriginpmaierkeepfiles><refsremotesoriginpmaierfixapdu _class='hudson.plugins.git.util.Build'><buildNumber>1421</buildNumber><marked><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><branch><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><name>refs/remotes/origin/pmaier/fixapdu</name></branch></marked><revision><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><branch><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><name>refs/remotes/origin/pmaier/fixapdu</name></branch></revision></refsremotesoriginpmaierfixapdu><refsremotesoriginpmaieraramtest _class='hudson.plugins.git.util.Build'><buildNumber>1467</buildNumber><marked><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><branch><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><name>refs/remotes/origin/pmaier/aramtest</name></branch></marked><revision><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><branch><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><name>refs/remotes/origin/pmaier/aramtest</name></branch></revision></refsremotesoriginpmaieraramtest><refsremotesoriginosmithwip _class='hudson.plugins.git.util.Build'><buildNumber>1816</buildNumber><marked><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><branch><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></marked><revision><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><branch><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></revision></refsremotesoriginosmithwip><refsremotesoriginpmaierotatest _class='hudson.plugins.git.util.Build'><buildNumber>2022</buildNumber><marked><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><branch><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><name>refs/remotes/origin/pmaier/otatest</name></branch></marked><revision><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><branch><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><name>refs/remotes/origin/pmaier/otatest</name></branch></revision></refsremotesoriginpmaierotatest><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>402</buildNumber><marked><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><branch><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><branch><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/pysim</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#2122</displayName><duration>13194</duration><estimatedDuration>12701</estimatedDuration><fullDisplayName>master-pysim » pylint,a1=default,a3=default,a4=default,osmocom-master #2122</fullDisplayName><id>2122</id><inProgress>false</inProgress><keepLog>false</keepLog><number>2122</number><queueId>103944</queueId><result>SUCCESS</result><timestamp>1777492248527</timestamp><url>https://jenkins.osmocom.org/jenkins/view/SIMtrace/job/master-pysim/JOB_TYPE=pylint,a1=default,a3=default,a4=default,label=osmocom-master/2122/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/pySim-prog_test/Wavemobile-SIM.ok</affectedPath><affectedPath>tests/pySim-prog_test/Fairwaves-SIM.ok</affectedPath><affectedPath>pySim/legacy/cards.py</affectedPath><commitId>8fa7727a14db2472ccf03f1fe147ee653a84f45d</commitId><timestamp>1777491554000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>pySim-prog/cards: fix programming of EF.SMSP

The legacy code found in legacy/cards.py does not use the modern
construct based encoder (pySim-read uses it). The card classes either
use their own implementation of update_smsp or use the generic method
provided by the SimCard class. The latter one is true for FairwavesSIM
and WavemobileSim.

Unfortunately the implementation found in the SimCard is wrong. It
adds padding at the end of the file instead of the beginning. This
completely messes up the contents of EF.SMSP for the cards using this
method. To fix this, let's use the leftpad feature provided by
the update_record. This will ensure a correct alignment of the file
contents.

Related: SYS#7765
Change-Id: Ie112418f1f1461762d61365d3863181ca6be7245
</comment><date>2026-04-29 19:39:14 +0000</date><id>8fa7727a14db2472ccf03f1fe147ee653a84f45d</id><msg>pySim-prog/cards: fix programming of EF.SMSP</msg><path><editType>edit</editType><file>tests/pySim-prog_test/Fairwaves-SIM.ok</file></path><path><editType>edit</editType><file>tests/pySim-prog_test/Wavemobile-SIM.ok</file></path><path><editType>edit</editType><file>pySim/legacy/cards.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pySim/ts_51_011.py</affectedPath><commitId>593bfa09119383d23b9e3385fc2d35a036a796c5</commitId><timestamp>1777491554000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>ts_51_011/EF.SMSP: fix handling of 'alpha_id' field

The field 'alpha_id' is technically not an optional field, even though
the specification describes it as optional. Once the card manufacturer
decides that the field should be present, it must be always present and
vice versa.

(see code comment for a more detailed description)

Related: SYS#7765
Change-Id: I0ec99b2648b22c56f9145345e4cd8776f9217701
</comment><date>2026-04-29 19:39:14 +0000</date><id>593bfa09119383d23b9e3385fc2d35a036a796c5</id><msg>ts_51_011/EF.SMSP: fix handling of 'alpha_id' field</msg><path><editType>edit</editType><file>pySim/ts_51_011.py</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>EMAIL_NOTIFICATIONS</name><value>jenkins-notifications@lists.osmocom.org laforge@gnumonks.org</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "master-pysim" build number 2,122</shortDescription><upstreamBuild>2122</upstreamBuild><upstreamProject>master-pysim</upstreamProject><upstreamUrl>job/master-pysim/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>1</buildableDurationMillis><buildableTimeMillis>1</buildableTimeMillis><buildingDurationMillis>11796</buildingDurationMillis><executingTimeMillis>11796</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>2122</buildNumber><marked><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></marked><revision><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></revision></originmaster></buildsByBranchName><lastBuiltRevision><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><branch><SHA1>593bfa09119383d23b9e3385fc2d35a036a796c5</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/pysim</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#2122</displayName><duration>11796</duration><estimatedDuration>10264</estimatedDuration><fullDisplayName>master-pysim » test,a1=default,a3=default,a4=default,osmocom-master #2122</fullDisplayName><id>2122</id><inProgress>false</inProgress><keepLog>false</keepLog><number>2122</number><queueId>103943</queueId><result>SUCCESS</result><timestamp>1777492248527</timestamp><url>https://jenkins.osmocom.org/jenkins/view/SIMtrace/job/master-pysim/JOB_TYPE=test,a1=default,a3=default,a4=default,label=osmocom-master/2122/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/pySim-prog_test/Wavemobile-SIM.ok</affectedPath><affectedPath>tests/pySim-prog_test/Fairwaves-SIM.ok</affectedPath><affectedPath>pySim/legacy/cards.py</affectedPath><commitId>8fa7727a14db2472ccf03f1fe147ee653a84f45d</commitId><timestamp>1777491554000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>pySim-prog/cards: fix programming of EF.SMSP

The legacy code found in legacy/cards.py does not use the modern
construct based encoder (pySim-read uses it). The card classes either
use their own implementation of update_smsp or use the generic method
provided by the SimCard class. The latter one is true for FairwavesSIM
and WavemobileSim.

Unfortunately the implementation found in the SimCard is wrong. It
adds padding at the end of the file instead of the beginning. This
completely messes up the contents of EF.SMSP for the cards using this
method. To fix this, let's use the leftpad feature provided by
the update_record. This will ensure a correct alignment of the file
contents.

Related: SYS#7765
Change-Id: Ie112418f1f1461762d61365d3863181ca6be7245
</comment><date>2026-04-29 19:39:14 +0000</date><id>8fa7727a14db2472ccf03f1fe147ee653a84f45d</id><msg>pySim-prog/cards: fix programming of EF.SMSP</msg><path><editType>edit</editType><file>tests/pySim-prog_test/Fairwaves-SIM.ok</file></path><path><editType>edit</editType><file>pySim/legacy/cards.py</file></path><path><editType>edit</editType><file>tests/pySim-prog_test/Wavemobile-SIM.ok</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pySim/ts_51_011.py</affectedPath><commitId>593bfa09119383d23b9e3385fc2d35a036a796c5</commitId><timestamp>1777491554000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>ts_51_011/EF.SMSP: fix handling of 'alpha_id' field

The field 'alpha_id' is technically not an optional field, even though
the specification describes it as optional. Once the card manufacturer
decides that the field should be present, it must be always present and
vice versa.

(see code comment for a more detailed description)

Related: SYS#7765
Change-Id: I0ec99b2648b22c56f9145345e4cd8776f9217701
</comment><date>2026-04-29 19:39:14 +0000</date><id>593bfa09119383d23b9e3385fc2d35a036a796c5</id><msg>ts_51_011/EF.SMSP: fix handling of 'alpha_id' field</msg><path><editType>edit</editType><file>pySim/ts_51_011.py</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>EMAIL_NOTIFICATIONS</name><value>jenkins-notifications@lists.osmocom.org laforge@gnumonks.org</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "master-pysim" build number 2,112</shortDescription><upstreamBuild>2112</upstreamBuild><upstreamProject>master-pysim</upstreamProject><upstreamUrl>job/master-pysim/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>939063</buildableDurationMillis><buildableTimeMillis>939063</buildableTimeMillis><buildingDurationMillis>6575</buildingDurationMillis><executingTimeMillis>6575</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>113</waitingDurationMillis><waitingTimeMillis>113</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginpmaierfixgr _class='hudson.plugins.git.util.Build'><buildNumber>2045</buildNumber><marked><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><branch><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><name>refs/remotes/origin/pmaier/fixgr</name></branch></marked><revision><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><branch><SHA1>e5f56dd35f1b2347a59f88b401b59997798fff67</SHA1><name>refs/remotes/origin/pmaier/fixgr</name></branch></revision></refsremotesoriginpmaierfixgr><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>2112</buildNumber><marked><SHA1>03b58985a51ab39ff4f6edc82b3e7fdd923a782b</SHA1><branch><SHA1>03b58985a51ab39ff4f6edc82b3e7fdd923a782b</SHA1><name>origin/master</name></branch></marked><revision><SHA1>03b58985a51ab39ff4f6edc82b3e7fdd923a782b</SHA1><branch><SHA1>03b58985a51ab39ff4f6edc82b3e7fdd923a782b</SHA1><name>origin/master</name></branch></revision></originmaster><refsremotesoriginpmaierara-m _class='hudson.plugins.git.util.Build'><buildNumber>1320</buildNumber><marked><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><branch><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><name>refs/remotes/origin/pmaier/ara-m</name></branch></marked><revision><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><branch><SHA1>8f289234f74045496c3752bf1bb9397302f3e912</SHA1><name>refs/remotes/origin/pmaier/ara-m</name></branch></revision></refsremotesoriginpmaierara-m><refsremotesoriginpmaierkeepfiles _class='hudson.plugins.git.util.Build'><buildNumber>1353</buildNumber><marked><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><branch><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><name>refs/remotes/origin/pmaier/keepfiles</name></branch></marked><revision><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><branch><SHA1>3d815859830197b9c55e0a49a1bd2532f71285e1</SHA1><name>refs/remotes/origin/pmaier/keepfiles</name></branch></revision></refsremotesoriginpmaierkeepfiles><refsremotesoriginpmaierfixapdu _class='hudson.plugins.git.util.Build'><buildNumber>1421</buildNumber><marked><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><branch><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><name>refs/remotes/origin/pmaier/fixapdu</name></branch></marked><revision><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><branch><SHA1>568e8ae9b817ec2473907bfdd30870410890ffb0</SHA1><name>refs/remotes/origin/pmaier/fixapdu</name></branch></revision></refsremotesoriginpmaierfixapdu><refsremotesoriginpmaieraramtest _class='hudson.plugins.git.util.Build'><buildNumber>1467</buildNumber><marked><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><branch><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><name>refs/remotes/origin/pmaier/aramtest</name></branch></marked><revision><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><branch><SHA1>6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6</SHA1><name>refs/remotes/origin/pmaier/aramtest</name></branch></revision></refsremotesoriginpmaieraramtest><refsremotesoriginosmithwip _class='hudson.plugins.git.util.Build'><buildNumber>1816</buildNumber><marked><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><branch><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></marked><revision><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><branch><SHA1>e4ea1c997348370ba1d7415bfd926ac873b58c87</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></revision></refsremotesoriginosmithwip><refsremotesoriginpmaierotatest _class='hudson.plugins.git.util.Build'><buildNumber>2022</buildNumber><marked><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><branch><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><name>refs/remotes/origin/pmaier/otatest</name></branch></marked><revision><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><branch><SHA1>f57f047c627392c40fbe349b1a73ccebe05dc005</SHA1><name>refs/remotes/origin/pmaier/otatest</name></branch></revision></refsremotesoriginpmaierotatest><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>402</buildNumber><marked><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><branch><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><branch><SHA1>4f888a0414101dee4f20aa12579491fcc71707b3</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>03b58985a51ab39ff4f6edc82b3e7fdd923a782b</SHA1><branch><SHA1>03b58985a51ab39ff4f6edc82b3e7fdd923a782b</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/pysim</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#2112</displayName><duration>6575</duration><estimatedDuration>708812</estimatedDuration><fullDisplayName>master-pysim » test,a1=default,a3=default,a4=default,simtester #2112</fullDisplayName><id>2112</id><inProgress>false</inProgress><keepLog>false</keepLog><number>2112</number><queueId>97234</queueId><result>FAILURE</result><timestamp>1777027801994</timestamp><url>https://jenkins.osmocom.org/jenkins/view/SIMtrace/job/master-pysim/JOB_TYPE=test,a1=default,a3=default,a4=default,label=simtester/2112/</url><builtOn>simtester</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></run></matrixBuild>